有符号数的二进制补码怎样转换为十进制数
对于正数,补码就是原码,对于负数,补码等于原码求反后加一的结果。
10000011B由于最高位即符号位为1,所以其为负数,要求其原码只需用100000000B减去补码,再冠以符号位即可:100000000B,原码的值为125,所以其对应的十进制数为-125。
扩展资料:
如果补码的符号位为“0”,表示是一个正数,其原码就是补码。如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。
例:已知一个补码为11111001,则原码是00000111(-7)。因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。其余七位1111001取反后为0000110;再加1,所以是00000111。
参考资料来源:百度百科——补码
常规转换方式:源二进制数除以10,余数为十进制个位,商赋给自己,然后再除以10,余数为十进制十位,商再次赋给自己,以此类推,直到二进制数变为零为止。
补码,是由一系列二进制数组成的。
补码中的每一位,都对应一位十进制数。
补码最高位,所对应的数值,是负数。
那么,八位的补码,各个位的数值,就是:
-128、64、32、16、8、4、2、1。
例如,有一个补码是:1011 1001。
它代表的数值,就是:-128 + 32 + 16 + 8 + 1 = -71。
倘若首位是 0,即为:0011 1001。
求数值,就更简单了:0 + 32 + 16 + 8 + 1 = +57。
不必进行补码到原码的转换。
你就进行【二进制到十进制的转换】就行了。
---------------------
记住:补码最高位的 1,不仅是数字,还是负号。
比如,有一个八位补码:1011 0100。
最高位的 1,既是 128,还代表负号。
所以,这个 1,就代表数值-128。
其余的位之和是:32 + 16 + 4 = 52。
那么,其十进制数就是:-128 + 52 = -76。
-------------
如果,补码是:0011 0100。
最高位是 0 !
此时,-128 就不存在了。
那么,它的十进制就只有:32 + 16 + 4 = +52。
---------------------
补码,和原码反码,并没有任何关系。
补码,可以直接转换到,它所对应的十进制数。