一数值的问题?(10分)

  • 主题发起人 主题发起人 mrzxc
  • 开始时间 开始时间
M

mrzxc

Unregistered / Unconfirmed
GUEST, unregistred user!
我有四个数,大小都在255以内,我想通过移位合成一个数如:
在pascal中是:202,105,55,173,用十六进表示是:$CA6937AD当然也可用Longint型
现在怎样由前面四个数得到后面的。是不是202 shl 32 or 105 shl 16 or 55 shl 8 or
173,但合成后却不等于$CA6937AD,为什么?
 
procedure TForm1.Button1Click(Sender: TObject);
var
J: array[0..3] of Byte;
P: LongInt;
begin
J[0] := 1;
J[1] := 0;
J[2] := 0;
J[3] := 0;
Move(J,P,4);
ShowMessage(IntToStr(P));
end;
注意:低位在前,高位在后。
上例中P最后等于1
 
补充一下,上面的程序有些问题。
procedure TForm1.Button3Click(Sender: TObject);
var
J: array[0..3] of Byte;
P: Cardinal;
begin
J[0] := 173;
J[1] := 55;
J[2] := 105;
J[3] := 202;
Move(J,P,4);
ShowMessage(IntToHex(P,8));
end;
这个应该没问题啦
 
接受答案了.
 
后退
顶部