可能重复:
Converting float or negative integer to hexadecimal in Borland Delphi
是否有一个函数可用于将浮点值转换为十六进制值并返回?
答案 0 :(得分:4)
procedure ShowBinaryRepresentation;
var
S, S2: Single;
I: Integer;
D, D2: Double;
I64: Int64;
begin
S := -1.841;
I := PInteger(@S)^;
OutputWriteLine(Format('Single in binary represenation: %.8X', [I]));
S2 := PSingle(@I)^;
OutputWriteLine(Format('Converted back to single: %f', [S2]));
D := -1.841E50;
I64 := PInt64(@D)^;
OutputWriteLine(Format('Double in binary represenation: %.16X', [I64]));
D2 := PDouble(@I64)^;
OutputWriteLine(Format('Converted back to double: %f', [D2]));
end;
Single in binary represenation: BFEBA5E3 Converted back to single: -1,84 Double in binary represenation: CA5F7DD860D57D4D Converted back to double: -1,841E50
答案 1 :(得分:0)
不浮点。有inttohex可以将整数(也可能是int64)更改为十六进制字符串。
可能你需要撬开IEEE格式双重类型的位并将它们更改为十六进制,然后用中间点连接。
如果这不是您要找的答案,请用“十六进制值”指定您的意思。
如果您只想将其转换为数组,例如bytes,定义一个具有合适大小的字节类型数组(4个用于单个,8个用于double和10个扩展)和类型转换。