原码、反码、补码

原码

一个数的原码(原始的二进制码)有如下特点:
    1、最高位做为符号位,0表示正,为1表示负2、其它数值部分就是数值本身绝对值的二进制数
    3、负数的原码是在其绝对值的基础上,最高位变为1

十进制数

原码

+15

0000 1111

-15

1000 1111

+0

0000 0000

-0

1000 0000

反码

1、对于正数,反码与原码相同
2对于负数,符号位不变,其它部分取反(1变0,0变1)

十进制数

反码

+15

0000 1111

-15

1111 0000

+0

0000 0000

-0

1111 1111

补码

在计算机系统中,数值一律用补码来存储。

补码特点:
    1、对于正数,原码、反码、补码相同
    2、对于负数,其补码为它的反码加1
    3、补码符号位不动,其他位求反,最后整个数加1,得到原码

十进制数

补码

+15

0000 1111

-15

1111 0001

+0

0000 0000

-0

0000 0000

补码的意义

在计算机系统中,数值一律用补码来存储,主要原因是:
    1、统一了零的编码
    2、将符号位和其它位统一处理
    3、将减法运算转变为加法运算
    4、两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃

 示例1:用8位二进制数分别表示+0和-0

十进制数

原码

+0

0000 0000

-0

1000 0000

十进制数

反码

+0

0000 0000

-0

1111 1111

不管以原码方式存储,还是以反码方式存储,0也有两种表示形式。为什么同样一个0有两种不同的表示方法呢?

但是如果以补码方式存储,补码统一了零的编码:

十进制数

补码

+0

 0000 0000

-0

10000 0000

由于只用8位描述,最高位1丢弃,变为0000 0000

示例2:计算9-6的结果:

a、以原码方式相加:

十进制数

原码

9

0000 1001

-6

1000 0110

b、以补码方式相加:

十进制数

补码

9

0000 1001

-6

1111 1010

posted @ 2018-07-18 19:37  犀利辅助  阅读(979)  评论(0编辑  收藏  举报