我需要知道如何解决这个问题
使用 8 位有符号幅度、一个补码和二进制补码表示以下二进制十进制数:
- 88
- -76
我的解决方案是:
88 = 01011000 8 bit sm
10100111 1s complement
10101000 2s complement
-76 = Not sure about this one
我需要知道如何解决这个问题
使用 8 位有符号幅度、一个补码和二进制补码表示以下二进制十进制数:
- 88
- -76
我的解决方案是:
88 = 01011000 8 bit sm
10100111 1s complement
10101000 2s complement
-76 = Not sure about this one
在 8 位有符号幅度中,MSB 表示数字的符号,无论是正数还是负数。
88 = 01011000
^(MSB) this is signed bit,0 for positive.
在 Decimal 中,为了得到 -76,我们从组合数 (256) 中减去 76,得到 256 - 76 = 180。
-76 = 10110100
^(MSB) this is signed bit, 1 for negative.
对于一个的补码表示,只需将位反转,即,将 0 更改为 1,将 1 更改为 0。
因此,86(one's complement)
= 10100111。
并且,-76(one's complement)
= 01001011。
此外,我们通过在数字的二进制数表示中加 1 来获得二进制补码。
因此,86(two's complement)
= 10101000。
并且,-76(two's complement)
= 01001100。
此链接应该可以帮助您解决问题 - 它非常简短且直接: http ://www.cs.uwm.edu/classes/cs315/Bacon/Lecture/HTML/ch04s11.html
8位有符号幅度的简短解释:
您所需格式的数字如下所示:
1000 0110,等于十进制中的 -6:
1*** **** - 表示数字有符号(负号),
*000 0110 - 包含二进制表示数字。
当您有一个正数时,您只需将其转换为二进制形式:
(D) 7 = 0000 0111 (D) 20 = 0001 0100
当您有一个负数(例如 -7)时,您的最高位等于 1:1...
并且该值被简单地转换为二进制形式:
(D) 7 = 111 = 000 0111
然后你把它结合起来:
(D)-7 = 1000 0111。
请注意,在这种格式中,您只能保存范围从 -127 到 127 的数字 - 您只剩下 7 个低位用于值,而第 8 位必须用于符号。
1s 互补示例:
(D) -7 = 1000 0111 8 位有符号。当您添加一个数字并且它是 1s 互补时,您应该得到: 1111 1111
1000 0111 - 您的数字
0111 1000 + - 您的数字的 1s 互补
^^^^^^^^^
1111 1111
形式上,你可以做如下操作:
1111 1111
1000 0111 - - 你的号码
^^^^^^^^^
... <- 你的号码补1
2s互补:
当您计算 1s 互补时,只需将 1 添加到它: 1000 0111 - 您的号码
0111 1000 - 您的号码的 1s 互补
0111 1001 - 您的号码的 2s 互补
尝试自己做这件事并发布你的答案——这样你会学到更多。