Delphi byte[]转换为int

本文提供了三种使用Delphi进行字节数组到整数转换的方法:通过Move函数配合不同大小的整数类型、利用指针直接指向字节数组查看转换结果,以及将字节数组转换为十六进制字符串再转为整数。

http://bbs.youkuaiyun.com/topics/330082331 

1、

var
  buf: array[0..1] of byte;
  bus: array[0..3] of byte;
  si:SmallInt ;
  i:Integer ;
begin
  buf[0] := $01;
  buf[1] := $02;
  bus[0] := $00;
  bus[1] := $01;
  bus[2] := $02;
  bus[3] := $03;

  Move(buf,si,SizeOf(SmallInt) );
  ShowMessage(IntToStr(si));

  Move(bus,i,SizeOf(Integer) );
  ShowMessage(IntToStr(i));

2、

类型转换
用个Integer指针直接指向字节数组就OK了,如果就想看看转换结果的话,MOVE都不用了
var
  buf : array[0..3] of byte;
  Pint:PInteger;
begin
  buf[0] := $00;
  buf[1] := $01;
  buf[2] := $02;
  buf[3] := $03;
  Pint:=@buf[0];
  ShowMessage(IntToStr( Pint^));
end;

3、

var
  buf : array[0..1] of byte;
  bus : array[0..3] of byte;
  function ByteToHex(InByte:byte):shortstring;
    const Digits:array[0..15] of char='0123456789ABCDEF';
  begin
    result:=digits[InByte shr 4]+digits[InByte and $0F];
  end;
  function BinArrayToString(aArray: array of Byte): string;
  var
    i: integer;
  begin
    result:='';
    for i:= Low(aArray) to High(aArray) do
    begin
      result:= result + ByteToHex(aArray[i]);
    end;
    Result:= IntToStr(StrToInt('$'+result));
  end;
begin
  buf[0] := $01;
  buf[1] := $02;
  showmessage(BinArrayToString(buf));
  bus[0] := $00;
  bus[1] := $01;
  bus[2] := $02;
  bus[3] := $03;
  showmessage(BinArrayToString(bus));
end;

 

posted on 2016-08-04 13:37 HiRong 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/zhrong/p/5736393.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值