我想在Delphi中将Byte转换为String
例如,在c#中的是:
Convert.ToString(Byte, 16);
我试过了:
SetString(AnsiStr, PAnsiChar(@ByteArray[0]), LengthOfByteArray);
StringVar := Chr(ByteVar);
由于
答案 0 :(得分:4)
假设Byte
是类型为byte
的值的占位符,则您的C#代码会将单字节转换为其十六进制表示形式。 Delphi等价物是IntToHex
。
var
s: string;
b: Byte;
....
b := ...;
s := IntToHex(b);
您的Delphi代码暗示您实际上希望将字节数组转换为十六进制表示形式。在这种情况下,您需要的功能是BinToHex
。我真的不能给你更多细节,因为你的问题本身缺乏细节。如果不了解变量的类型,我们就会做出猜测。在将来的问题中,提供Minimal, Complete, and Verifiable example是明智的。
答案 1 :(得分:-1)
最后我使用这个功能;
function TForm1.bintostr(const bin: array of byte): string;
const HexSymbols = '0123456789ABCDEF';
var i: integer;
begin
SetLength(Result, 2*Length(bin));
for i := 0 to Length(bin)-1 do begin
Result[1 + 2*i + 0] := HexSymbols[1 + bin[i] shr 4];
Result[1 + 2*i + 1] := HexSymbols[1 + bin[i] and $0F];
end;
end;