已知8位机器码 10110100,它是补码时,表示的十进制真值是( )。
2022-09-29 · 百度认证:北京惠企网络技术有限公司官方账号
-76。
最前面那位是符号位,代表符号,后七位是数字位,补码求原码,正数不变,负数除符号位其它取反再加1,所以求得原码后,在将除符号位后七位二进制转换为十进制。
首先第一步求1011 0100的十进制数为180然后256-180=76。-76的补码就属是180的原码。
扩展资料:
原码是有符号数的最简单的编码方式,便于输入输出,但作为代码加减运算时较为复杂。一个字长为n的机器数能表示不同的数字的个数是固定的2^n个,n=8时2^n=256。
用来表示有符号数,数的范围就是 -2^(n-1)-1 ~ 2^(n-1)-1,n=8时,这个范围就是 -127到+127。
但是在不需要考虑数的正负时,就不需要用一位来表示符号位,n位机器数全部用来表示是数值,这时表示数的范围就是0~2^n-1,n=8时这个范围就是0~255.没有符号位的数,称为无符号数。
八位的补码:1011 0100。
首位 1,既代表负号,也代表数值-128。
其余都是正数:32 + 16 + 4 = 52。
求总和,立即就得出真值:-76。
-------------
如果首位是 0,就太简单了。
八位的补码:0011 0100。
其真值就是:32 + 16 + 4 = +52。
-------------
由补码求真值,既不用求“反码原码”,也不用想着“符号位不变”。
“取反加一”或“减一取反”,都是不需要的。
你就直接进行【数制转换】,就完事了。
简单不简单?意外不意外?
-------------
掌握了这种方法,再由数值求补码,也不用整哪些烂事了。
老外脑子不好用,才必须用“符号位原码反码取反加一符号位不变”。