1

我将如何找到两字节二进制补码值 0xFF72 的值是“?

  1. 我会先将 0xFF72 转换为二进制吗?
  2. 反转位。
  3. 二进制加 1。//在这里丢失。
  4. 写十进制。

我只是不知道..

还,

一个 8 字节的 double 值怎么样:0x7FF8000000000000。它作为浮点的值?

4

3 回答 3

3

我认为这是家庭作业,但对于列出的特定双倍。 0x7FF8000000000000根据 IEEE-754 规范,它是一个安静的 NaN,对于家庭作业来说不是一个非常有趣的值:

  • 符号位很清楚。
  • 指数字段是0x7ff,最大可能的指数,这意味着该数字是无穷大或 NaN。
  • 有效位域是0x8000000000000。由于它不是零,因此该数字不是无穷大,并且必须是 NaN。由于设置了前导位,所以它是一个安静的 NaN,而不是所谓的“信号 NaN”。
于 2010-01-25T14:36:48.177 回答
2

第 3 步只是意味着将值加 1。这真的很简单。:-)

0xFF72 示例(此处假定为 16 位):

  1. 首先,反转它:0x008D(每个数字只是0xF减去原始值)
  2. 然后加1:0x008E
于 2010-01-25T05:09:50.013 回答
0

这听起来像家庭作业,为了开放,如果是的话,你应该这样标记它。

至于解释 8 字节(双)浮点数,请查看这篇 Wikipedia article

于 2010-01-25T05:19:54.967 回答