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 希望内容对你有所帮助,谢谢!