我需要知道如何解决这个问题
使用8位有符号幅度,一个补码和二进制补码表示二进制二进制数:
- 88
- -76
醇>
我的解决方案是:
88 = 01011000 8 bit sm
10100111 1s complement
10101000 2s complement
-76 = Not sure about this one
答案 0 :(得分:1)
在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。
答案 1 :(得分:0)
此链接可以帮助您解决问题 - 它非常简短直接: http://www.cs.uwm.edu/classes/cs315/Bacon/Lecture/HTML/ch04s11.html
8位带符号幅度的简短说明:
您所需格式的数字如下所示:
1000 0110,十进制等于-6:
1 *** **** - 表示数字HAS符号(为负),
* 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位有符号。
当你添加一个数字并且它是1的互补时,你应该得到:1111 1111
1000 0111 - 您的号码
0111 1000 + - 你的号码是1的补充
^^^^^^^^^
1111 1111
正式地,您可以执行以下操作:
1111 1111
1000 0111 - - 你的号码
^^^^^^^^^
...< - 您的号码是1的补充
2s互补:
当你计算1s互补时,只需加1即可:
1000 0111 - 您的号码
0111 1000 - 您的号码1的补充
0111 1001 - 您的号码是2s的补充
尝试自己动手并发布答案 - 这样你就会学到更多。