十六进制转换为字符--100分(100分)

  • 主题发起人 主题发起人 wonder_520
  • 开始时间 开始时间
W

wonder_520

Unregistered / Unconfirmed
GUEST, unregistred user!
请各位大哥哥大姐姐帮帮忙把下面的八组十六进制字符串转换为八个字符:
D6EC OABO A4A8 5026 6116 37E4 745B 364D
 
8个字符?不可能,你给的每组16进制数都是一个Word,两个byte才是一个word,而字符就是一个byte。
 
to zqw0117:
不好意思,可能是我没有写清楚.八个字符是中文字符.
 
这看上去就不是什么中文字符,肯定转出来是乱码
 
procedure TForm1.Button1Click(Sender: TObject);
var
s1:string;
s2:WideString;
i:integer;
code:WORD;
b:Byte;
begin
s1:='D6EC 0AB0 A4A8 5026 6116 37E4 745B 364D';
s2:='';
code:=0;
for i:=1 to Length(s1) do
if s1 in ['0'..'9','A'..'F','a'..'f'] then
begin
b:=ord(s1);
case s1 of
'0'..'9':
b:=b-$30;
'A'..'F':
b:=b-$37;
'a'..'f':
b:=b-$57
end;
code:=code shl 4 + b
end
else
begin
s2:=s2+WideChar(code);
code:=0
end;
if code>0 then
s2:=s2+WideChar(code);
MessageBoxW(Form1.Handle,Pointer(s2),'',mb_ok)
end;
 
你的字符串不可能转换成“八个中文字符”
因为其中的 5026;6116;745B;364D 这样的 WORD 转成字符也只能是两个字母(或其他符号)
 
这到底是什么编码啊?我试了试,都不是汉字啊。纳闷。观望中。
 
奥尔良门锁接口的一个注册码转换。
 
多人接受了答案!
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部