HEXADECIMAL TOPLAMA

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
Okann
Üye
Mesajlar: 81
Kayıt: 09 Tem 2010 02:55

HEXADECIMAL TOPLAMA

Mesaj gönderen Okann »

Merhaba Arkadaşlar,

40 haneli 2 hexadecimal sayıyı toplayıp sonucu yine hexadecimal olarak verebilir miyiz? malum int64 19 karakter, farklı yolları var mıdır bu işin fikri olan yardımcı olursa çok sevinirim.
Kullanıcı avatarı
Javs
Üye
Mesajlar: 32
Kayıt: 16 Eyl 2014 02:45

Re: HEXADECIMAL TOPLAMA

Mesaj gönderen Javs »

Öcelikle toplamak istediğin hexadecimal sayıları decimal'e cevirip aşağıdaki kodlarla istediğin kadar haneyi birbiri ile toplayabilirsin ve sonra tekrar hexadecimal'e cevirebilirsin aşağıda yazdığın kodlarda önemli olan iki değerinde uzunluğu aynı olması sen 40 haneli 2 tane sayıyı nasıl toplayabilirim dediğin için böyle yaptım. birbirinden farklı sayılarda toplatılabilir. biraz daha değiştirmek gerekir.
AnsiReverseString fonksiyonunu kullanabilmek için uses kısmına StrUtils eklemelisin.

Kod: Tümünü seç

function topla(deger1,deger2:string):string;
var
sayi1, sayi2, sonuc:String;
toplam, elde, kalan, i:integer;
begin
elde := 0;
kalan := 0;
toplam := 0;
sayi1 := AnsiReverseString(deger1);
sayi2 := AnsiReverseString(deger2);
  for i := 1 to Length(sayi1) do
    begin
      toplam := StrToInt(sayi1[i]) + StrToInt(sayi2[i]) + elde;
      if toplam >= 10 then
        begin
          kalan := toplam - 10;
          elde := 1;
          sonuc := sonuc + IntToStr(kalan);
          if i = Length(sayi1) then
            begin
              sonuc := sonuc + ('1');
            end;
        end
      else
        begin
        sonuc := sonuc + IntToStr(toplam);
        elde := 0;
        end;
    end;
result := AnsiReverseString(sonuc);
end;
Okann
Üye
Mesajlar: 81
Kayıt: 09 Tem 2010 02:55

Re: HEXADECIMAL TOPLAMA

Mesaj gönderen Okann »

Merhaba örnek için teşekkür ederim. dediğiniz gibi istediğimiz büyüklükteki 2 sayıyı toplayabiliyor. benim yaptığım hexadecimali decimale çevirme fonksiyonu yine belli bir karaktere kadar çeviriyor. AnsiReverseString fonksiyonu bu çeviriyede yardımcı olabilirmi acaba
Kullanıcı avatarı
Javs
Üye
Mesajlar: 32
Kayıt: 16 Eyl 2014 02:45

Re: HEXADECIMAL TOPLAMA

Mesaj gönderen Javs »

AnsiReverseString fonksiyonu string değişkende bulunan değerleri tersten yazdırmak için kullanılan fonksiyon sen hexadecimal değerleri decimal'e çevirmek için kullandığın fonksiyonu buraya yaz onada bakalım büyük ihtimal senin gönderdiğin hexadecimal değerleri direk integer olarak geriye döndürmeye çalıştığı için fazla gelen karakterler sorun çıkartıyodur string olarak geriye döndürürsek bir sorun yaşanacağını sanmıyorum.
Okann
Üye
Mesajlar: 81
Kayıt: 09 Tem 2010 02:55

Re: HEXADECIMAL TOPLAMA

Mesaj gönderen Okann »

Toplama işini çözdüm. Linkte lazım olan arkadaşlar faydalanabilir.
Karakter uzunlukları farklı sayıları toplatabilseydik daha anlamlı bir fonksiyon haline gelirdi. Javs yardımın için teşekkür ederim.
Eğer farklı karakter uzunluklarını toplama ile ilgili bir yöntemin olursa paylaşırsan sevinirim. Çok teşekkürler.

https://mega.co.nz/#!9lADwYKC!KprS9cA12 ... thxJocvzOk
Cevapla