为什么两个互补,1001 和 11111001 都是 -7?
How come in two's complementary, 1001 and 11111001 are both -7?
当我学习补码时,有人教我,对于有符号的数字,
0111
表示7
,
所以通过使用两个互补,
0111 -> 1000 + 1 -> 1001, is -7
所以1001代表-7
.
当我在 YouTube 上刷新这个概念时,我看到一个视频说,
0000 0111
表示7
,所以利用二的补码,
0000 0111 -> 1111 1000 + 1 -> 1111 1001, is -7,
因此,11111001
代表-7
。
我很困惑。那么仅仅通过查看一个带符号的二进制数,我们如何确定它的值呢?我认为11111001
应该等于-121
,因为第一个数MSB是1
,所以它是负数,而1111001
是十进制的-121
,所以应该11111001
不是 -121
吗?我做错了什么?
谢谢大家!
这两个示例之间的唯一区别是您为每个数字使用的位数。
1001 是 -7,有 4 位,11111001 是 -7,有 8 位。
如果将同一个绝对数的负数和正数相加,结果将为零。
两者都是-7 + 7 = 0
1001 + 0111 = 1|0000
11111001 + 00000111 = 1|00000000
当我学习补码时,有人教我,对于有符号的数字,
0111
表示7
,
所以通过使用两个互补,
0111 -> 1000 + 1 -> 1001, is -7
所以1001代表-7
.
当我在 YouTube 上刷新这个概念时,我看到一个视频说,
0000 0111
表示7
,所以利用二的补码,
0000 0111 -> 1111 1000 + 1 -> 1111 1001, is -7,
因此,11111001
代表-7
。
我很困惑。那么仅仅通过查看一个带符号的二进制数,我们如何确定它的值呢?我认为11111001
应该等于-121
,因为第一个数MSB是1
,所以它是负数,而1111001
是十进制的-121
,所以应该11111001
不是 -121
吗?我做错了什么?
谢谢大家!
这两个示例之间的唯一区别是您为每个数字使用的位数。
1001 是 -7,有 4 位,11111001 是 -7,有 8 位。
如果将同一个绝对数的负数和正数相加,结果将为零。
两者都是-7 + 7 = 0
1001 + 0111 = 1|0000
11111001 + 00000111 = 1|00000000