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 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!
浙公网安备 33010602011771号