Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Büyük Sayılarla Çalışmak
#1
Merhaba
HexToDec işlemi yapıyorum. Fakat gelen hex. sayı fazla büyük buda sonucu bana - olarak döndürmesine neden oluyor. Bu tarz durumlarda ne yapılmalı.

function HexToDec(Str: string): LongInt;
var
 i, M: Integer;
begin
 Result:=0;
 M:=1;
 Str:=AnsiUpperCase(Str);
 for i:=Length(Str) downto 1 do
 begin
   case Str[i] of
     '1'..'9': Result:=Result+(Ord(Str[i])-Ord('0'))*M;
     'A'..'F': Result:=Result+(Ord(Str[i])-Ord('A')+10)*M;
   end;
   M:=M shl 4;
 end;
end;

Hex hali = 9a2929c7
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#2
https://github.com/rvelthuis/DelphiBigNumbers
buraya bir göz atın.

“Do. Or do not. There is no try.”
Cevapla
#3
(02-09-2018, Saat: 21:06)masteryoda Adlı Kullanıcıdan Alıntı: https://github.com/rvelthuis/DelphiBigNumbers
buraya bir göz atın.

Aslında bana string olarak lazım sonuç. Sadece bir convert için bu kadar pası projeye eklemek ne kadar mantıklı

Çok basit bir hata yaptığımı farkettim sonucu int64 yapıp ara değişkenleri integer yaptığım için patlıyomuşum.
Herkese iyi akşamlar Smile Saygılar.
function HexToDec(Str: string): int64  ;
var
 i, M: int64;
begin
 Result:=0;
 M:=1;
 Str:=AnsiUpperCase(Str);
 for i:=Length(Str) downto 1 do
 begin
   case Str[i] of
     '1'..'9': Result:=Result+(Ord(Str[i])-Ord('0'))*M;
     'A'..'F': Result:=Result+(Ord(Str[i])-Ord('A')+10)*M;
   end;
   M:=M shl 4;
 end;
end;
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#4
Fonksiyon tipini LongInt yerine UInt64 olarak değiştirip deneyin. Çok daha büyük sayılar devreye girmeyecekse mevcut durumu idare edebilir belki. Yoksa bu durum için yazılacak kodlar, bunca pas dosyasını projeye eklemekten çok daha maliyetli olabilir Big Grin .
Cevapla
#5
Cardinal veri tipini kullanabilirsin.

FFFFFFFF = 4294967295

http://docwiki.embarcadero.com/RADStudio...s_(Delphi)

https://www.binaryhexconverter.com/hex-t...-converter
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#6
işin garip tarafı VCL'de doğru sonuç verirken firemonkeyde saçmalıyor.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#7
UInt64 veri tipi ile de denermisin,

http://docwiki.embarcadero.com/Libraries...tem.UInt64
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#8
(02-09-2018, Saat: 22:32)uparlayan Adlı Kullanıcıdan Alıntı: UInt64 veri tipi ile de denermisin,

http://docwiki.embarcadero.com/Libraries...tem.UInt64

Hocam denedim olmadı shl işlemi firemonkeyde saçmalıyor. Algoritmayı shl siz hale çektim düzeldi şimdi

(02-09-2018, Saat: 22:32)uparlayan Adlı Kullanıcıdan Alıntı: UInt64 veri tipi ile de denermisin,

http://docwiki.embarcadero.com/Libraries...tem.UInt64

Hocam fakat saçma geldi bana müsaitseniz kodu VCL de birde Firemonkeyde denermisiniz bir bende mi böyle oluyor.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#9
VCL ve FMX'de windows x32 ve x64'te denedim, bende normal çalışıyor
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#10
(02-09-2018, Saat: 23:15)uparlayan Adlı Kullanıcıdan Alıntı: VCL ve FMX'de windows x32 ve x64'te denedim, bende normal çalışıyor

Android derlediğimde telefonda saçmalıyor zaten
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  dizideki en buyuk sayı ve id si sadikacar60 2 1.395 27-10-2021, Saat: 18:59
Son Yorum: sadikacar60
  Devexpress CxGrid'de Büyük ve Görsel CheckBox Oluşturmak bydelphi 1 1.870 22-09-2020, Saat: 20:55
Son Yorum: frmman
  Datasnap büyük dosya gönderme sorunu. seci20 2 2.889 12-01-2020, Saat: 14:56
Son Yorum: seci20
  Matrislerle çalışmak esistem 8 5.951 25-06-2019, Saat: 13:10
Son Yorum: uparlayan
  Tarih büyük harf ahmetb 13 11.653 22-01-2019, Saat: 11:41
Son Yorum: adelphiforumz



Konuyu Okuyanlar: 1 Ziyaretçi