如何把一个字符串转换为16进制植(37分)

  • 主题发起人 主题发起人 600019629
  • 开始时间 开始时间
6

600019629

Unregistered / Unconfirmed
GUEST, unregistred user!
如何把一个字符串转换为16进制植,比如把'字符串afEVBI345'转换成'FF 1A 2B 3C DD 45...'这样的16进制值,谢谢
 
程序如下:
var
s,v: string;
i: Integer;
begin
s := '字符串afEVBI345';
for i:=1 to Length(s) do
v := v + format('%.2x ',[Byte(s)]);
showmessage(v);
end;
 
pchar(IntToHex(StrToInt(afEVBI345),2))
// 参数2是指每位十进制数用几位十六进
制来表示。
 
东兰梦舞,qaz2003,谢谢你们的回答,还有一个问题请教,如果知道了'成'FF 1A 2B 3C DD 45...'这样的16进制值,如何返回成把'字符串afEVBI345'呢
 
var
s,v: string;
i: Integer;
v2s: string;
begin
s := '字符串afEVBI345';
for i:=1 to Length(s) do
v := v + format('%.2x ',[Byte(s)]);
showmessage(v);
for i:=1 to Length(v) div 3 do
v2s := v2s + Char(StrToInt('$'+Copy(v, (i-1)*3+1, 2)));
showmessage(v2s);
end;
 
啊,我来晚了,但是我的最简单

// 字符串 转换成 16 进制
function EncodeHEX(A : String) : String;
var
N : Integer;
begin
N := Length(A);
SetLength(Result,N * 2 + 1);
BinToHex(PChar(A),PChar(Result),N);
end;

// 16 进制 转换 成 字符串
function DecodeHEX(A : String) : String;
var
N : Integer;
begin
N := Length(A);
SetLength(Result,N div 2);
HexToBin(PChar(A),PChar(Result),N div 2);
end;

 
多人接受答案了。
 
后退
顶部