Delphi:将TByte转换为AnsiString中相应的Hex值

时间:2010-08-11 12:00:02

标签: delphi delphi-2010 byte hex

我正在尝试输出TByte的值作为AnsiString中对应的十六进制表示。

实施例: TByte是0x4F AnsiString:“4F”(两个字符,一个4和一个F)

我知道StringOf函数,但转换为“映射”字符。

是否有任何体面的功能,或者有人知道如何快速实现这个功能吗?

非常感谢您提前:))

2 个答案:

答案 0 :(得分:10)

我将它转换为字节并将其提供给SysUtils.IntToHex。

答案 1 :(得分:0)

由于Turbo Pascal天和SysUtils Hex函数不可用,因此格式函数已存在。

因此,对于D2010之前的任何版本的Delphi,请使用format命令:

lByteAsHex := format('%.2x',[AByte]);

.2精度说明符确保始终存在前导零。

以下一行:

lIntAsHex = format('%x',[AInt]);

处理任何大小的整数(包括int64),但不会放置前导零,所以 format(%x,[10])将返回' A'而format('%.2x',[10]将返回' 0A'