原码,反码,补码的主要应用是在计算机二进制加法层面,学习的时候需要摒弃非要搞懂基础定义的执念,否则会一直陷入思考..思考..思考。
先看图介绍什么是原码,反码,补码
十进制数 | 原码 | 反码 | 补码 |
+1 | 0000 0001 | 0000 0001 | 0000 0001 |
-1 | 1000 0001 | 1111 1110 | 1111 1111 |
一个数的原码,在计算机中的表示为 符号+数值。
符号即正负号,正为0,负为1,在编码里的数第一位为符号位。
数值即数本来的值,不带符号。
比如十进制的1,写成二进制为0000 0001,其中左边第一位0是符号位,不代表具体的数,仅代表该数为正数还是负数,0是正数,1是负数,后面的7位则代表具体的数值。
搞清楚了原码,再讲反码和补码就很简单了。
反码,顾名思义,跟原码是反着的,但这个反是有规则的。
第一,正数的反码,就是原码。
第二,负数的反码,才需要反,但反的时候符号位是不变的,仅数值部分取反。
补码,书上是讲 原码除符号位外取反末位加1,有了反码的概念后就简单一些,补码就是反码末位加1。当然正数不变。
总结: