-128的八位二进制原码是110000000。反码是101111111,补码是110000000。
十进制转换为二进制,-128=-(1*2^7) =110000000。负数原码的反码是10000000的按位取反,即01111111,加上符号位为101111111。负数原码的补码是负数原码的反码加1,即01111111+1 = 10000000,加上符号位为110000000。
扩展资料:
十进制整数采用 "除2取余,逆序排列"法。用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
计算机里原码用最高位表示数字的正负,1为负数,0为正数。最高位为1的负整数原码求反码,反码跟原码是正数时,一样;负数时,反码就是原码符号位除外,其他位按位取反。
计算机里数值是以补码表示,但八位二进制表示带符号数的范围是-128~+127,第8位为符号位,故00000000=(0)十进制,10000000=(-128)十进制——其实有1位进位。
因此,在带符号八位二进制下,-128换为8位二进制是10000000,反码是01111111,反码加1得补码:10000000。
-128 的八位二进制原码、反码,都不存在。
-128 的八位二进制补码,是按照补码的定义式,求出的。
即:
[-128]补 = 2^8 -128 = 256-128 = 128 = 1000 0000B。
先求负数的补码;
128的原码是0000000010000000,
取反 1111111101111111,
再加1
得-128 补码 1111111110000000.
计算机里数值是以补码表示的。
根据定义的时候,负数的补码是最高位为1,其其余为原码取反再对整个数加1
原码1000000010000000.
反码1111111101111111
-128 的八位二进制原码、反码,都不存在。
-128 的八位二进制补码,是按照补码的定义式,求出的。
即:
[-128]补 = 2^8 -128 = 256-128 = 128 = 1000 0000B。
不要迷信“求反加一”,那是骗人的,并不是定义式。