我试试,不知道是不是你要的结果?
function reverseHex(HexValue: Integer): Integer;
var
M, I, Tmp: Integer;
begin
M := 0;
for I := 1 to 8do
begin
Tmp := (HexValue and 1) shl (8 - i);
HexValue := HexValue shr 1;
M := M or Tmp;
end;
Result := M;
end;
位运算无非就是与、或、非、异或、左移、右移几种操作。
对于一个字节的逆序:
char s =0x80;
s = ((s &
0x01 )<<7 )| ((s &
0x02 )<<5 )| ((s &
0x04 )<<3 )| ((s &
0x08 )<<1 )|
((s &
0x10 )>>1 )| ((s &
0x20 )>>3 )| ((s &
0x40 )>>5 )| ((s &
0x80 )>>7 );
两个字节的话,先求出每个字节的逆序,然后交换这两个字节就行了。