在 8086 中表示 -130 的最少位数?
Minimum no of bits to represent -130 in 8086?
我需要知道表示 130 和 -130[=25= 所需的 最小 位数] 在 8086.
- 对于 130(已签名):
这将是无符号的,因此它通常表示。 130 = 0x82 = 1000 0010b
在这种情况下,答案将是 8 位
- 对于 -130(有符号):8086 中的负数是有符号数的第二个补码加 1。因此,第一个补码(不是 0x82):0111 1101b 加 1 将是 0111 1110b = 0x7E。在我看来,您需要 minimum 仅 7 位 来表示 -130。 这样对吗?如果数字是负数,不应该是最后一位启用才能知道符号是负数吗?这将需要超过 7 位。
如果有人知道答案,请告诉我。
取一个数的补码时,必须
- 在左边放置无数个 0 位
- 反转所有位
- 加 1
- 如果需要,删除一些无限数量的 1 位
让我们将其应用于数字 -130。 130 的位模式是
1000 0010
在左边放置了无数个 0 后
0000 0000 1000 0010
好的,所以八比无穷大略小,但你明白了。接下来反转得到
1111 1111 0111 1101
加1得
1111 1111 0111 1110
这时候你可以把左边的无穷大的1去掉一部分,但是你至少要保留其中的一个。所以-130的最短补码表示需要9位。
1 0111 1110
如果问题是 x86 处理器需要多大的寄存器,那么答案是 16 位寄存器。
我需要知道表示 130 和 -130[=25= 所需的 最小 位数] 在 8086.
- 对于 130(已签名): 这将是无符号的,因此它通常表示。 130 = 0x82 = 1000 0010b 在这种情况下,答案将是 8 位
- 对于 -130(有符号):8086 中的负数是有符号数的第二个补码加 1。因此,第一个补码(不是 0x82):0111 1101b 加 1 将是 0111 1110b = 0x7E。在我看来,您需要 minimum 仅 7 位 来表示 -130。 这样对吗?如果数字是负数,不应该是最后一位启用才能知道符号是负数吗?这将需要超过 7 位。
如果有人知道答案,请告诉我。
取一个数的补码时,必须
- 在左边放置无数个 0 位
- 反转所有位
- 加 1
- 如果需要,删除一些无限数量的 1 位
让我们将其应用于数字 -130。 130 的位模式是
1000 0010
在左边放置了无数个 0 后
0000 0000 1000 0010
好的,所以八比无穷大略小,但你明白了。接下来反转得到
1111 1111 0111 1101
加1得
1111 1111 0111 1110
这时候你可以把左边的无穷大的1去掉一部分,但是你至少要保留其中的一个。所以-130的最短补码表示需要9位。
1 0111 1110
如果问题是 x86 处理器需要多大的寄存器,那么答案是 16 位寄存器。