读书人

请教asc码与asc2码有区别吗?怎么将as

发布时间: 2012-02-29 16:44:11 作者: rapoo

请问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 }

读书人网 >.NET

热点推荐