gpt4 book ai didi

delphi - 如何快速将数字字符数组转换为整数?

转载 作者:行者123 更新时间:2023-12-03 15:58:44 27 4
gpt4 key购买 nike

情况:以十六进制形式保存在字节数组(TBytes)中的整数。通过较少的复制将该数字转换为整数类型,如果可能的话,无需任何复制。

这是一个例子:

array = ($35, $36, $37);

这是 ansi 中的“5”、“6”、“7”。如何更轻松地将其转换为 567(=$273)?

我复制了两次。是否可以做得更快?怎么办?

最佳答案

您可以使用LookUp Table代替HexToInt...

此过程仅适用于 AnsiChars,当然不提供错误检查!

var
Table :array[byte]of byte;

procedure InitLookupTable;
var
n: integer;
begin
for n := 0 to Length(Table) do
case n of
ord('0')..ord('9'): Table[n] := n - ord('0');
ord('A')..ord('F'): Table[n] := n - ord('A') + 10;
ord('a')..ord('f'): Table[n] := n - ord('a') + 10;
else Table[n] := 0;
end;
end;

function HexToInt(var hex: TBytes): integer;
var
n: integer;
begin
result := 0;
for n := 0 to Length(hex) -1 do
result := result shl 4 + Table[ord(hex[n])];
end;

关于delphi - 如何快速将数字字符数组转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135299/

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