procedure TForm1.btn1Click(Sender: TObject);
var
intX1,intX2,intX:Int64;
intA,intB,intC,intD:Int64;
begin
intA:=256*256;
intB:=256*256;
intC:=256*256;
intD:=256*255;
intX1:=intA*intB;
intX2:=intC*intD;
intX:=intX1*intX2;
showmessage(inttostr(intX)) ;
end;
uj5u.com熱心網友回復:
結果超64位最大正整數上限了,就變成負數請用double型別
uj5u.com熱心網友回復:
Int64:是Delphi中最大的整數,64位有符號整數type Int64 = -9223372036854775808..9223372036854775807;
當資料越界時( >9223372036854775807)時,僅保留后64位資料,造成假值現象。
你的IntX值遠遠大于9223372036854775807,越界的結果就是一個負數的假象。
uj5u.com熱心網友回復:
超了上限,過了一輪整好落在負數區間。uj5u.com熱心網友回復:
值太大了,換成Double也沒用uj5u.com熱心網友回復:
7個256,1個255,好像是2^63次,應該正好夠。。。。。uj5u.com熱心網友回復:
應該是 7個256,1個128,才是2^63次
uj5u.com熱心網友回復:
sssssd7個256,1個128 顯示也是負數
uj5u.com熱心網友回復:
有沒有無符號64位的資料型別?uj5u.com熱心網友回復:
該數值 176892884410642042440,大于Int64的最大數 9223372036854775807。
uj5u.com熱心網友回復:
非常報謙,計算結果應該=18374686479671623680uj5u.com熱心網友回復:
sssssd
7個256,1個255,好像是2^63次,應該正好夠。。。。。
應該是 7個256,1個128,才是2^63次
7個256,1個128 顯示也是負數
2^63-1才是最大的整數
多1,就成了負數
uj5u.com熱心網友回復:
sssssd
7個256,1個255,好像是2^63次,應該正好夠。。。。。
應該是 7個256,1個128,才是2^63次
7個256,1個128 顯示也是負數
2^63-1才是最大的整數
多1,就成了負數
delphi中最大正整數應該是2^32-1吧
uj5u.com熱心網友回復:
搞錯了delphi中最大正整數應該是2^63-1
uj5u.com熱心網友回復:
delphi中如何表示 大于 9223372036854775807 即 2^63-1 的數?uj5u.com熱心網友回復:
delphi中如何表示 大于 9223372036854775807 即 2^63-1 的數?
自己或第三方實作的 任意位數 大整數 類。。。。
好像go還是python倒是自帶了,可能是后者
uj5u.com熱心網友回復:
delphi中如何表示 大于 9223372036854775807 即 2^63-1 的數?
兩個64位整數表示一個數。
uj5u.com熱心網友回復:
編譯中,大于 2^63-1 的整數,可以通過String字符型別,以字符形式保存在資料庫。或者兩個欄位分別保存:A欄位保存整數的10^18整數,B欄位保存10^19以上的整數。uj5u.com熱心網友回復:
UIntToStruj5u.com熱心網友回復:
用uint64uj5u.com熱心網友回復:
用uint64
d7還沒有
不過也只是大了1位。。。。
uj5u.com熱心網友回復:
對樓主的計算剛好夠用。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/101792.html
標籤:語言基礎/算法/系統設計
