簡體   English   中英

將十六進制格式的數據轉換為字符串

[英]convert hex formatted data into string

我有一些需要以十六進制格式(以字節存儲)的數據,我需要將其轉換為字符串,數據應像這樣

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;

如果您的源字節不在動態數組中,則必須稍微調整代碼,但是它應該使您大致了解如何執行此操作。

對於您提供的示例,為什么不刪除空格呢?

s := '13 61 23 45 67 8F FF';

stripped := StrUtils.ReplaceStr(s,' ','');

如果您的十六進制字符串不太長,則可以將其作為一個數字獲取,如下所示:

MyInt64 := StrToInt64('$' + stripped);

如果您想獲取十六進制字符串作為字節數組,請查看HexToBin()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM