求救:在delphi中,怎样将单字节的十六进制转化为双字节的ASCII?谢谢了!(0分)

  • 主题发起人 主题发起人 arethusa
  • 开始时间 开始时间
A

arethusa

Unregistered / Unconfirmed
GUEST, unregistred user!
求救:在delphi中,怎样将单字节的十六进制转化为双字节的ASCII?谢谢了!
 
谢谢大家了,帮帮忙吧.
 
可以先把单子节的16进制转换为字符串(用IntToStr()),然后对字符串进行分割,判断<br>是0-9还是a-f,如果是0-9好办。把分割的字符转换成数字加上30就0k,如果是啊a-f可以用<br>一个对应表转化。再把两个字节一合并就可以了
 
如果收到的数据为不可见的十六进制,怎么转换?调试的时候看到的都是乱码.
 
procedure HexToAscii(X: Byte; P: PChar);<br> &nbsp;procedure HexToAscii1(X: Byte; P: PChar);<br> &nbsp;begin<br> &nbsp; &nbsp;case X of<br> &nbsp; &nbsp; &nbsp;0..9: P^:= Chr(X + Ord('0'));<br> &nbsp; &nbsp; &nbsp;10..15: P^:= Chr(X + Ord('A'));<br> &nbsp; &nbsp;end;<br> &nbsp;end;<br>begin<br> &nbsp;HexToAscii1((X shr 4), P);<br> &nbsp;Inc(P);<br> &nbsp;HexToAscii1((X and $F), P);<br>end;
 
接受答案了.
 
后退
顶部