如何使用2的补码表示带符号的数字

时间:2013-12-05 14:08:29

标签: binary

表示有符号数字的一种方法是使用符号位。

另一种方法是使用2's Complement?我是对的吗?

如果是, 考虑数字8.等价二进制是0000 1000

然后根据2的补充方法。

  1. 我们会将该位反转,0000 1000变为1111 0111 2.添加一个,以便1111 0111变为1111 1000.
  2. 1111 1000.如何表示符号位?

2 个答案:

答案 0 :(得分:0)

在2的补码中,最高有效位表示负值。因此对于8位数字,每位的十进制等值是:

-128 64 32 16 8 4 2 1

因此11111000总和为-8。

答案 1 :(得分:0)

“符号位”将是最左边的一个:0 - 正,1 - 负。另一种看待它的方法是(假设8位数字):

number 8 -> 1000
+8: fill from the leftmost 1 leftwards with sign bit 0 = positive -> 0000 1000
-8:  fill from the leftmost 1 leftwards with sign bit 1 = negative -> 1111 1000

因此,当您使用2的补码时,实际上有不同数量的“符号位”,在该示例中,您有4个。

<强>更新

上面说错了,它说“最左边”,它应该是“最右边”