例如:
5E 4D 5E 4D 20 30 5E 4C 20 31 31 38 5E 55 54 20 30 5E 45 4F 48 5E 5E 5E 01 00 76 F7 86 73 79 A1 00 02 FA 7E 67 E8 D6 05 A6 E7 1F 04 2B 00 70 51 40 5E F7 86 73 79 A1 00 03 97 87 D7 E9 16 08 F3 3C 19 03 7C 04 9C 41 40 5E F7 86 73 79 A3 00 02 A5 BE 51 EC 29 00 34 19 80 0B 6D 07 D0 41 40 5E F7 86 73 79 A1 00 00 79 C6 F9 EE ED 06 A9 D8 68 00 68 01 FC 41 40 5E F7 86 73 79 A1 00 03 81 D1 FA EA 5C 08 00 92 E7 0D 2C 05 88 41 40 5E 3C
它包括字母,实数等,该如何转换?
5E 4D 5E 4D 20 30 5E 4C 20 31 31 38 5E 55 54 20 30 5E 45 4F 48 5E 5E 5E 01 00 76 F7 86 73 79 A1 00 02 FA 7E 67 E8 D6 05 A6 E7 1F 04 2B 00 70 51 40 5E F7 86 73 79 A1 00 03 97 87 D7 E9 16 08 F3 3C 19 03 7C 04 9C 41 40 5E F7 86 73 79 A3 00 02 A5 BE 51 EC 29 00 34 19 80 0B 6D 07 D0 41 40 5E F7 86 73 79 A1 00 00 79 C6 F9 EE ED 06 A9 D8 68 00 68 01 FC 41 40 5E F7 86 73 79 A1 00 03 81 D1 FA EA 5C 08 00 92 E7 0D 2C 05 88 41 40 5E 3C
它包括字母,实数等,该如何转换?
var
RetVar: Int64;
i: Byte;
begin {Hex2Int function}
HexStr := UpperCase(HexStr);
if HexStr[length(HexStr)] = 'H' then
Delete(HexStr, length(HexStr), 1);
RetVar := 0;
for i := 1 to length(HexStr) do
begin
RetVar := RetVar shl 4;
if HexStr[i] in ['0'..'9'] then
RetVar := RetVar + (Byte(HexStr[i]) - 48)
else if HexStr[i] in ['A'..'F'] then
RetVar := RetVar + (Byte(HexStr[i]) - 55)
else
begin
Retvar := 0;
break;
end;
end;
Result := RetVar;
end;遍历一下即可
如果, 你是从串口,或文件读取,或其它接受到的十六进制, 其实,就是十进制数, 那你可用
IntToHex(X, 2) 来将十进制的树转成你想要的:
>>转换为含有字母,数字的字符串
Function : 解码转换函数===================================================================== }
function HexDecode(const str: WideString): WideString;
var
i, nLen, code: integer;
sTemp, sSrc, sDes: string;
begin
sDes := '';
sSrc := str;
nLen := Length(sSrc) div 2;
for i := 1 to nLen do
begin
sTemp := Copy(sSrc, (i * 2) - 1, 2);
code := StrToInt('$' + sTemp);
sDes := sDes + Chr(Code);
end;
Result := sDes;
end;
1、如果你把它当作是字符串,则这个字符串为
chr(strtoint('$5E'))+chr(strtoint('$4D'))+chr(strtoint('$5E'))+chr(strtoint('$4D'))+chr(strtoint('$20'))+chr(strtoint('$30'))+chr(strtoint('$5E'))+chr(strtoint('$4C'))
2、如果你把它当作是integer数据类型,则这段代表两个integer数
分别为$4D5E4D5E和$4C5E3020,转化就是strtoint('$4D5E4D5E'),strtoint('$4C5E3020')
同理,你也可把看作是word,int64类型数据。如果为word,就有4个数,如果为int64就只代表一个数。例如你用crossbow提供的function HexToInt(HexStr: string): Int64函数
则每次输入的HexStr字符串长度必须为8个字节。
我想知道这些字符串到底是什么?
用你的方法转变出来的全都是数字,可是这段数据应该包含字符串及实数
愿闻其详!