如何轉換64bit |
尚未結案
|
mis273
一般會員 發表:5 回覆:5 積分:2 註冊:2003-04-01 發送簡訊給我 |
|
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
|
aip999
初階會員 發表:10 回覆:63 積分:44 註冊:2002-03-29 發送簡訊給我 |
|
mis273
一般會員 發表:5 回覆:5 積分:2 註冊:2003-04-01 發送簡訊給我 |
|
aip999
初階會員 發表:10 回覆:63 積分:44 註冊:2002-03-29 發送簡訊給我 |
|
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
數值轉字串?字串轉數值?int64轉integer?! int64並不能轉成integer; //因為int64佔8byte integer佔4byte 除非你要捨棄另外4個byte. TInt64Ex = record Case Byte of 0:(Value:Int64); //分成1個Int64 1:(Low,High:Integer); //分成2個Integer 2:(L2,L1,H2,H1:Word); //亦能分成4個Word end; var I:Int64; j:Integer; begin i:=999999999999999999999...; j:=TInt64Ex(i).High; //這是Int64高位元組 j:=TInt64Ex(i).Low; //這是Int64低位元組 end;學而時習之不亦樂乎! 發表人 - jest0024 於 2004/05/05 22:53:06 |
sherryliu
一般會員 發表:2 回覆:2 積分:0 註冊:2004-03-24 發送簡訊給我 |
|
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
因為Windows系統裡並內支援到64bit的函數.
1.可以判斷htonl這支函數的計算方式,自己做個函式包裝起來.
2.傳回的Int64能否分為2個Integer處理!?
3.傳回的Int64值是否介於-2147483648..2147483647,如果介於這二個值之間
便使用轉型成integer處理,若超過這2個值的話,可能得依照方法1或2處理
4.依htonl函數得到以下的算法
uses Math; function htonlEx(Const Value:Integer):Integer; //模擬htonl寫的函數 begin Result:=Trunc(Power(2,24)*(Value mod 256) Power(2,16)*(Value div 56)); //2^16次方後會錯誤,因為算法還是有些錯誤..不過大致上如此 end;function IntToHex(Value: Int64; Digits: Integer): string; overload; 在重覆宣告函數時,內的參數須與已宣告內不同,因為你上方的宣告在SysUtils內已宣告過了,所以會錯誤!! 學而時習之不亦樂乎! 發表人 - jest0024 於 2004/05/07 01:21:03 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |