Delphi 转换函数 HexToBin用法 将16进制字串转成二进制

HexToBin函数

函数功能:把一个16进制字符串转换成二进制的数值(内存内容).

原型:

function HexToBin(Text, Buffer: PChar; BufSize: Integer): Integer; assembler;
const
  Convert: array['0'..'f'] of SmallInt =
    ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1,-1,-1,-1,-1,
     -1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,
     -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
     -1,10,11,12,13,14,15);
var
  I: Integer;
begin
  I := BufSize;
  while I > 0 do
  begin
    if not (Text[0] in ['0'..'f']) or not (Text[1] in ['0'..'f']) then Break;
    Buffer[0] := Char((Convert[Text[0]] shl 4) + Convert[Text[1]]);
    Inc(Buffer);
    Inc(Text, 2);
    Dec(I);
  end;
  Result := BufSize - I;
end;
参数:
  Text: 是被转换的16进制字符串数值.
  Buffer:返回转换结果, 是二进制数值.
  BufSize:是指Buffer的大小. Text需要指向一个至少2*BufSize的十六进制字符, 因为每两个十六进制字符表示一个字节.
返回值:
  函数返回Buffer中因为Text中没有包含有效的十六进制字符('0'..'f')而没有使用的字符个数.
 注意:
  这里输入的16进制一定要小写字符, 不能识别大写字符.(经校验大写字符也能转换)
 
 
 
创建时间:2020.03.10  更新时间:

posted on 2020-03-10 15:52  滔Roy  阅读(1921)  评论(0编辑  收藏  举报

导航