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

3
我想知道如果我得到这样的问题:

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

下面的路径是不是正确的?
十进制数:-23
23 = 00010111 = 十六进制17 = -17
-23 = 11101001 = 十六进制E9
所以将其转换为十六进制,答案是-17还是E9?
谢谢
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接