我可以将整数值转换为 ANSISTRING 类型的十六进制值吗?

Can i convert an interger value into a hexadecimal value of type ANSISTRING?

在 Delphi 2010 年,有一个函数 IntToHex() 可以将 integer 值转换为 hexadecimal 类型 UNICODE string

我需要的是一个将 integer 转换为 AnsiString 类型的 hexadecimal 的函数。

转换会起作用,因为十六进制始终是 ASCII 字符:

MyHexString := AnsiString(IntToHex(1234, 4));

如果你需要一个函数,写一个包装器:

function IntToHexAnsi(Value: Integer; Digits: Integer): AnsiString;
begin
  Result := AnsiString(IntToHex(Value, Digits));
end;

您不需要做任何特别的事情。只需将 AnsiString 类型的变量分配给 IntToHex 函数的结果——编译器将负责将 UnicodeString/STRING 类型转换为 AnsiString:

VAR
  AnsiStr : AnsiString;

BEGIN
  AnsiStr:=IntToHex(12345678,8);
END;