十进制 <--> 二进制补码 <--> 十六进制转换

Dan*_*e23 2 hex decimal twos-complement

我想知道我是否收到这样的问题:

“将十进制数转换为二进制补码,然后以十六进制给出答案”。

是下面的路径,怎么做?

十进制数:-23

23 = 00010111 = 十六进制 17 = -17

-23 = 11101001 = 十六进制 E9

那么要将其转换为十六进制,答案是 -17 还是 E9?

谢谢

Phi*_*ier 5

-17这里没有任何意义,因为根据你的任务,你必须退回补为十六进制,这就是E9

您的转换路径在我看来总体上是正确的。

  1. 没有标志的 DEC 到 BIN:
    • 23 → 0001 0111
  2. 否定 BIN 字符串:
    • 0001 0111 → 1110 1000
  3. 将否定的 BIN 结果加1
    • 1110 1000 + 0000 0001 → 1110 1001
  4. 验证正确的二进制补码计算:
    • -128 + 64 + 32 + 8 + 1 = -23 → 正确
  5. 将最终的 BIN 字符串转换为 HEX:
    • 1110 1001 → 0xE9