var str, Str1: String; I: Integer; begin str := Edit1.Text; for I := 1 to Length(Str) do begin Str[I] := Chr(Ord[I] + I + 48); end; SetLength(Str1, Length(Str) * 2); BinToHex(PChar(Str), PChar(Str1), Length(Str)); Edit2.Text := Str1; end;
q我运行的时候 Str[I] := Chr(Ord[I] + I + 48); 出现错误,,,不知为啥
unsigned,这样处理好像和答案不一样哦。我测试了一下。在运行软件,EDIT1输入12345678 点击按钮时
EDIT2得出的结果为:3132333435F29886而我用计算机算出来的是 12345678 转16得:3132333435363738+3132333435363738=626466686A6C6E70
"而我用计算机算出来的是 12345678 转16得:3132333435363738"
十进制转十六进制肯定不可能转了之后比十进制还长啦。12345678(10)=BC614E(16)所以不知道你想要怎么转
str, Str1: String;
I: Integer;
begin
str := Edit1.Text;
for I := 1 to Length(Str) do begin
Str[I] := Chr(Ord[I] + I + 48);
end;
SetLength(Str1, Length(Str) * 2);
BinToHex(PChar(Str), PChar(Str1), Length(Str));
Edit2.Text := Str1;
end;
出现错误,,,不知为啥