gpt4 book ai didi

delphi - 以高效的方式将字符串转换为十六进制

转载 作者:行者123 更新时间:2023-12-03 14:56:07 24 4
gpt4 key购买 nike

我开发了以下函数来将字符串转换为十六进制值。

function StrToHex(const S: String): String;
const
HexDigits: array[0..15] of Char = '0123456789ABCDEF';
var
I: Integer;
P1: PChar;
P2: PChar;
B: Byte;
begin

SetLength(Result, Length(S) * 2);
P1 := @S[1];
P2 := @Result[1];

for I := 1 to Length(S) do
begin
B := Byte(P1^);
P2^ := HexDigits[B shr 4];
Inc(P2);
P2^ := HexDigits[B and $F];
Inc(P1);
Inc(P2);
end;

end;

现在我想知道是否有更有效的方法来转换字符串?

最佳答案

取决于您的 Delphi 版本:

D5-D2007

uses classes;
function String2Hex(const Buffer: Ansistring): string;
begin
SetLength(result, 2*Length(Buffer));
BinToHex(@Buffer[1], @result[1], Length(Buffer));
end;

D2009+

uses classes;
function String2Hex(const Buffer: Ansistring): string;
begin
SetLength(result, 2*Length(Buffer));
BinToHex(@Buffer[1], PWideChar(@result[1]), Length(Buffer));
end;

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com