我正在尝试输出TByte的值作为AnsiString中对应的十六进制表示。
实施例: TByte是0x4F AnsiString:“4F”(两个字符,一个4和一个F)
我知道StringOf函数,但转换为“映射”字符。
是否有任何体面的功能,或者有人知道如何快速实现这个功能吗?
非常感谢您提前:))
答案 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'