delphi - 将十六进制格式的数据转换为字符串

标签 delphi hex

我有一些十六进制格式的数据(以字节存储),我需要将其转换为字符串,数据应该是这样的

13 61 23 45 67 8F FF

和预期输出

13612345678FFF

我知道 Chr() 或 IntToStr() 函数将不起作用,因为该数据不是实际的十六进制代码,而是以十六进制格式设置的字符串/数字,所以有人对此有一些建议吗?

最佳答案

这用于将动态字节数组转换为十六进制字符串:

function BytesToHex(aSource: TBytes): string;
begin
  SetLength(Result, Length(aSource) * 2);
  if Length(aSource) > 0 then
    BinToHex(aSource[0], PChar(Result), Length(aSource));
end;

如果您的源字节不在动态数组中,则必须稍微调整代码,但它应该让您大致了解如何执行此操作。

关于delphi - 将十六进制格式的数据转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5189460/

相关文章:

c++ - C 中的 char* 字符串到十六进制数组

delphi - 为什么 Delphi 不清楚增加接口(interface)列表中最后一个元素的引用计数?

web-services - Soap Web 服务从同一调用返回不同的响应

arrays - 如何将十六进制字符串转换为字节数组?

c# - 将十六进制字符串转换回字符

c - 在C中以十六进制读取文件内容

delphi - 写保护 USB 驱动器上出现 ShellExecuteEx 错误?

xml - 如何独立于区域设置从 XML 文件中正确读取浮点值?

windows - 使用 RegNotifyChangeKeyValue 监视对 64 位 key 的更改

c++ - 分配二进制和十六进制时, "0b"和 "0x"代表什么?