如何实现把整形236006660高位移到低位后变成70062350?
解决方案 »
- [paradox db][query][sql]求助? 按时间段查询记录的麻烦
- 关于控件排列的问题,希望指点。
- 还在战斗的程序员们,晚上好!!问一个入门问题啦,别走开!!!
- 用ADOProc执行一个过程,出错提示“将截断字符串或二进制数据。”怎么回事?
- 关于属性编辑器的问题(就是在系统中实现DELPHI的属性编辑器的那样的效果)
- 我怎样利用*_date和*_log两个文件创建数据库?
- To: zswang (伴水)(努力工作中)
- webbrowser如何得到新开窗口的地址,在OpenNewWindow里要怎么写
- 小妹?^_^?捉虫:出现数据库链接错误!
- 为什么要调用一个DLL中一个过程要有type Tdll=procedure(Myform:TForm);的语句?
- 有个关于线程的疑问,请教大家
- C++转换为delphi
function ConvetLH(Num: Integer): Integer;
var
Arr, Brr: array of Byte;
s: string;
B: Byte;
I: Integer;
begin
s := InttoStr(Num);
SetLength(Arr, 4);
CopyMemory(Arr, @Num, 4);
SetLength(Brr, 4);
for I := High(Arr) downto Low(Arr) do
begin
Brr[3-I] := Arr[I];
end;
Result := PInteger(Brr)^;
end;{To Do...}
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(InttoStr(ConvetLH(236006660)) + ' - 70062350');
end;
begin
Result := (I shr 24) + (I shr 8) and $0000FF00 + (I shl 8) and $00FF0000 + (I shl 24) and $FF000000
end;function ChangeOrder2(I: Integer): Integer;
var
P: PByte;
begin
P := PByte(@I);
Result := P^ shl 24;
Inc(P);
Inc(Result, P^ shl 16);
Inc(P);
Inc(Result, P^ shl 8);
Inc(P);
Inc(Result, P^)
end;function ChangeOrder3(I: Integer): Integer;{速度最快}
asm
push eax
xchg [esp+3],al
mov [esp],al
mov cl,[esp+2]
mov [esp+2],ah
mov [esp+1],cl
pop eax
end;
begin
Result := Num div (1 shl 24) + Num mod (1 shl 24) div (1 shl 16) shl 8
+ Num mod (1 shl 16) div (1 shl 8) shl 16 + Num mod 256 shl 24;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('236006660高位移到低位后变成:'+InttoStr(ConvetLH(236006660)));
end;
asm
bswap eax
end;
var
i:Integer;
begin
i:=236006660;
i:=htonl(i);
ShowMessage(IntToStr(i));
end;
function ChangeOrder(I: Integer): Integer;
asm
mov cl,ah
mov ch,al
shl ecx,16
shr eax,16
mov cl,ah
mov ch,al
mov eax,ecx
end;