【发布时间】:2016-06-02 17:17:44
【问题描述】:
我正在尝试将 -75 转换为十六进制浮点数。这个浮点数由 1 个符号位、5 个指数位、10 个尾数位和偏差 = 15 组成。我能够将 -75 转换为 F 0000E 4B00000000。但我不完全确定隐藏位系统如何以这种十六进制表示法工作?我怀疑它不存在,因为二进制系统中有 16 个不同的十六进制数字(0-F)而不是 2 个(0-1)。
这就是我所做的:
-75 -> sign = -, so sign-bit = F.
75 -> hexadecimal value = 4B.
Normalise -> 4,B . 10^(-1).
Exponent -> -1 + bias = -1 + 15 = 14 => 0000E.
The complete floating point becomes: F 0000E 4B00000000.
这对吗?
【问题讨论】:
-
你想用什么编程语言来做这个?您可能应该将其包含在问题的文本中并作为标签。
-
“十六进制浮点”是什么意思? IEEE-754 格式的十六进制表示是
C2960000代表-75.0f和C052C00000000000代表-75.0,如果这就是你要问的。 -
它不适用于任何编程语言。这是理论上的转换。而且我不是在寻找 IEEE754 中的十六进制表示,而是在我在帖子中描述的系统中。我知道这很令人困惑,但我想完全理解这些转换:)。感谢您迄今为止的帮助
-
您是正确的,隐藏位仅适用于标准化二进制浮点。这取决于已知不为零的二进制数字必须是一的想法。我使用的是十六进制浮点系统,它没有隐藏位。
-
更一般地说,您似乎有太多位。总宽度为 16 位(1+5+10),应该只有 4 个十六进制数字。
标签: floating-point hex type-conversion