请问asc码与asc2码有区别吗?如何将asc码转换成16进制码?
有将asc码转换成16进制码的工具吗?
请看如下数据:
初始化:
COM1【WRITE:0】68 99 99 99 99 99 99 68 05 01 61 CD 16
COM1【READ:0】68 FF FF FF FF FF FF 68 C5 01 32 C2 16
COM1【WRITE:0】68 99 99 99 99 99 99 68 03 01 02 6C 16
COM1【READ:0】68 FF FF FF FF FF FF 68 C3 01 31 BF 16
其中第一行的:68 99 99 99 99 99 99 68 05 01 61 CD 16
这是asc码还是其它什么码?
如何将这个转换成16进制的呀?
先谢了。
[解决办法]
68 99 99 99 99 99 99 68 05 01 61 CD 16 这是十六进制字符串
StrToIntDef( '$ ' + '68 ', 0); // 十六进制换成整数
IntToHex($68, 2); // 整数换成十六进制字符串
//参考如下代码
function HexToStr( //十六进制字符串处理成字符串
mHex: string //十六进制字符串
): string; //返回处理后的字符串
var
I: Integer;
begin
Result := ' ';
mHex := StringReplace(mHex, #32, ' ', [rfReplaceAll]);
for I := 1 to Length(mHex) div 2 do
Result := Result + Chr(StrToIntDef( '$ ' + Copy(mHex, I * 2 - 1, 2), 0));
end; { HexToStr }
function StrToHex( //字符串处理成十六进制字符串
mStr: string; //字符串
mSpace: Boolean = False //是否用空格分开
): string; //返回处理后的十六进制字符串
const
cSpaceStr: array[Boolean] of string = ( ' ', #32);
var
I: Integer;
begin
Result := ' ';
for I := 1 to Length(mStr) do
Result := Format( '%s%s%.2x ', [Result, cSpaceStr[mSpace], Ord(mStr[I])]);
if mSpace then Delete(Result, 1, 1);
end; { StrToHex }