负数的补码怎么求?
就比如-9 补码是11110111。
9的源码为00001001,如果是负数的话,补码为最高位置1,
其余取反也就是11110110,
然后在最低位加1即可即11110111。
计算机中的负数是以其补码形式存在的 补码=原码取反+1。
一个字节有8位 可以表示的数值范围在 -128到+127。
用二进制表示也就是 10000000 - 01111111(注意:最高位表示符号)。
最高位是1的都是负数 最高位是0的都是正数。
如-7 原码是 10000111 然后取反(最高位是符合不用取反)得11111000。
加一 得11111001 那么-7的二进制数就是 11111001。
再如 -10 原码是 10001010 取反得 11110101 加一得 11110110。
那么-10的二进制数就是 11110110。
二进制数是逢二进一 只有0和1两个数字 没有2。
负数的补码是:符号位为1,其余各位求反,末位加1
反码是:符号位为1,其余各位求反,但末位不加1
也就是说,反码末位加上1就是补码。
例如: -1011
原码:11011
反码:10100 //负数时,反码为原码取反
补码:10101 //负数时,补码为原码取反+1
移码:00101 //原数+10000
计算机中的符号数有三种表示方法,即 原码、 反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。 在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
负数的补码,就用它的正数,减一取反,即可得到补码。
--------
如:
+9 补码是:0000 1001。
-9 补码是:0000 1001 - 1 = 0000 1000;
再取反,得:1111 0111。
这不就完了吗?
原码反码符号位,讨论这些垃圾干嘛?
不都是骗人的吗?