负数的补码怎么求?

2020-07-15 万国名师 阅读

  就比如-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。

  这不就完了吗?

  原码反码符号位,讨论这些垃圾干嘛?

  不都是骗人的吗?

标签: