如何把Byte数组转换成整数??

allun666 2012-06-21 10:02:27
如何把Byte数组转换成整数?? 最后结果为 296591

Procedure TForm1.Button4Click(Sender: TObject);
var
MyArray_byte : Array [0..3] Of Byte;

Begin
MyArray_byte[0]:=143; //8F
MyArray_byte[1]:=134; //86
MyArray_byte[2]:=4; //4
MyArray_byte[3]:=0; //0

//如何把数组转换成整数 296591
End;
...全文
403 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjp1234airen4385 2012-06-21
  • 打赏
  • 举报
回复
3楼,连汇编都出来了。
一如当初 2012-06-21
  • 打赏
  • 举报
回复
var
MyArray_byte : Array [0..3] Of Byte;
Value: Integer;
begin
MyArray_byte[0]:=143; //8F
MyArray_byte[1]:=134; //86
MyArray_byte[2]:=4; //4
MyArray_byte[3]:=0; //0
asm
mov edx, [MyArray_byte]
mov Value, edx
end;
ShowMessage(IntToStr(Value));
end;
bdmh 2012-06-21
  • 打赏
  • 举报
回复

var
MyArray_byte : Array [0..3] Of Byte;
i:Integer;
Begin
MyArray_byte[0]:=143; //8F
MyArray_byte[1]:=134; //86
MyArray_byte[2]:=4; //4
MyArray_byte[3]:=0; //0
Move(MyArray_byte[0],i,SizeOf(Integer));
ShowMessage(IntToStr(i));
//如何把数组转换成整数 296591
End;
oloveuxyz 2012-06-21
  • 打赏
  • 举报
回复
tmpInt := PInteger(@MyArray_byte[0])^;
s11ss 2012-06-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
tmpInt := PInteger(@MyArray_byte[0])^;
[/Quote]
顶,还可以:
tmpInt := MyArray_byte[3] shl 24 + MyArray_byte[2] shl 16 + MyArray_byte[1] shl 8 + MyArray_byte[0];
蓝色光芒 2012-06-21
  • 打赏
  • 举报
回复
Move函数就免了吧,不知道怎么想的

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧