十六進製制數相加校驗和計算程式

2021-04-19 02:17:18 字數 774 閱讀 2458

function getcheckstr(astr: string; aindex: integer): string;

varnewstr1,he,oldstr:string;

tj:boolean;

i:integer;

begin

i:=1;

he:='';

tj:=true;

oldstr:=copy(astr,aindex,length(astr)-aindex+1);

while tj=true do

begin

newstr1:=copy(oldstr,i,2);

oldstr:=copy(oldstr,i+2,length(oldstr)-2);

//開始計算校驗和並給he變數

if he='' then

begin

he:=inttohex(strtointdef('$'+newstr1,16)+ strtointdef('$'+'00',16),2);

he:=rightstr(he,2);

endelse

begin

he:=inttohex(strtointdef('$'+newstr1,16)+ strtointdef('$'+he,16),2);

he:=rightstr(he,2);

end;

if  length(oldstr) =0 then tj:=false;

end;

result:= astr+he;

end;

十六進製制計算問題

system.out.println long.tohexstring 0x100000000l 0xcafebabe 先看看以上 感覺答案應該是 1cafebabe。但是答案卻是 cafebabe。為什麼呢,怎麼感覺像是int型變數的相加,第32位的1被捨棄了。看看以下 就明白了 int hex ...

iOS 十六進製制的相加取反

ios中將nsstring字串轉換成char型別 nsstring string nsstring stringwithformat 5d const char result string utf8string char字元轉成nsstring char a 10 3er4 nsstring str...

oracle產生十六進製制數

1 建立seq,產生十進位制的序列號 sql code?1 2 3 4 5 6 7 8 createsequenceseq hex minvalue 0 maxvalue 10000000 startwith0 incrementby1 cache 20 cycle order 2 寫乙個函式,返回...