原码,反码以及补码

原码:如果机器字长为n,那么一个数的原码就是用一个n位的二进制数,其中最高位为符号位:正数为0,负数为1。剩下的n-1位表示该数的绝对值。

  (机器字长:是指计算机进行一次整数运算所能处理的二进制数据的位数,机器字长是32位,主存储器字长可以是32位,也可以是16位)

反码:对于正数,反码与原码相同;对于负数,符号位不变,原码数值位取反(1变0,0变1)。

补码:对于正数,补码与原码相同;对于负数,符号位不变,原码数值位绝对值取反后在最低位加1。

1>正数的原码,反码,补码都是一样的。

2>原码与补码的转换

  • 原码-->补码(符号位不变,其他取反加1)

  原码:11100110;

  先变反码:10011001;

  再加1变为补码:10011010

  • 补码-->原码(符号位不变,其他取反加1)

  补码:10011010 ;

  先变反码:11100101

    再加1变为原码:11100110

 

1.在计算机中,数值一律用补码存储。

  • 主要原因:使用补码,可以将符号位和其他位统一处理;同时,减法也可安家发来处理。
  • 另外,两个用补码表示的数相加时,如果是高位有进位,则进位被舍弃。

2.采用原码表示法

  • 优点:简单易懂
  • 缺点:运算复杂,因为,当两数相加时,如果是同号,则数值相加。若是异号,则要进行减法,在进行减法的同时还要比较绝对值的大小,,然后大数减小数,最后还要给结果选择符号,
posted @ 2016-05-24 23:38  芬乐  阅读(674)  评论(0编辑  收藏  举报