【问题标题】:What is a 32-bit two's complement?什么是 32 位二进制补码?
【发布时间】:2017-02-27 00:26:21
【问题描述】:

我真的对“32 位二进制补码”这个术语感到困惑

如果我有数字 9,那么 32 位二进制补码是多少?

9 = 1001

补码 = 0111

32 位 9 = 0000 0000 0000 0000 0000 0000 0000 1001

二进制补码 = 1111 1111 1111 1111 1111 1111 1111 0111

这个结果太可笑了!实在是太大了!这真的是你应该做的吗?

【问题讨论】:

标签: binary cpu-architecture twos-complement


【解决方案1】:

现代计算机中用于表示有符号整数的最常用格式是二进制补码。二进制补码表示允许对有符号整数使用二进制算术运算。

正 2 的补数表示为简单二进制。

负 2 的补数表示为二进制数,当它与相同大小的正数相加时等于 0。

你的 2 的补码输出等于 -9(负 9)。

已编辑:

您被要求执行 32 位操作,因此它应该是 1111 1111 1111 1111 1111 1111 1111 0111

对于有符号数,最左边的位表示该数的符号。如果最左边的位 (LSB) 为 1,则该数字为负数,否则为正数。所以,你的 32 位 2 的补数是负数,它是 -9。 简单地说,对一个数执行 2 的补码就等于否定它 即它将正数变为负数,反之亦然。 更多浏览链接:

http://www.tfinley.net/notes/cps104/twoscomp.html

【讨论】:

  • 但是是 1111 1111 1111 1111 1111 1111 1111 0111 还是 0111?
  • 第一个 32 位。
猜你喜欢
  • 2011-10-14
  • 2015-08-26
  • 2021-12-21
  • 1970-01-01
  • 1970-01-01
  • 2020-01-24
  • 2021-10-27
  • 1970-01-01
  • 2012-10-12
相关资源
最近更新 更多