机器码10110101,它是补码时,表示十进制的值是多少?
是-75。
10110101 = 181(十进制)
真值=181-256=-75。
最前面那位是符号位,代表符号,后七位是数字位,补码求原码,正数不变,负数除符号位其它取反再加1,所以求得原码后,在将除符号位后七位二进制转换为十进制。首先第一步求1011 0100的十进制数为180然后256-180=76。-76的补码就属是180的原码。
假设
当前时针指向8点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨2小时,即8-2=6;另一种是顺拨10小时,8+10=12+6=6,即8-2=8+10=8+12-2(mod 12).在12为模的系统里,加10和减2效果是一样的,因此凡是减2运算,都可以用加10来代替。若用一般公式可表示为:a-b=a-b+mod=a+mod-b。对“模”而言,2和10互为补数。
10110101 符号位为1,为负数。后面这7位 0110101 取反,得 1001010,再+1,写上符号,得原码:11001011 【注意第一个 1表示负号,不是数值】
十进制真值 由后7位 1001011 =2^6+2^3+2^1+2^0=64+8+2+1=75,加上负号,为 -75
求解方法:
10110101 = 181(十进制)
真值=181-256=-75。
由补码,求其代表的数字(即真值),方法极其简单。
既不用求“原码反码”,也不用考虑“符号位不变”。
你只要做【数 制 转 换】,即可。
例如:八位补码是 1011 0101。
首位的 1,既代表负号,也代表数值-128。
其余各位,都是正数,求和: 32 + 16 + 4 + 1 = +53。
总和,就是真值:-128 + 53 =-75。
-------------
如果,补码是 0011 0101。
真值就是: 32 + 16 + 4 + 1 = +53。