-
关于整数的2进制表示方法一共有3种 即:原码 反码 补码。但是其中对于有符号的整数,其三种的表示方法都包含了:符号位 数值位。
-
符号位 位于二进制数的最高的一位,1表示负,0表示正,其余都是数值位。
那么对于有符号的整数我们如何写出三个形式呢?
e.g. int a=-12
//原码:直接按照正负数的形式翻译成二进制即可
//(由于int的4个字节 且一个字节的8个比特位 故而一共32个数字)
原码:10000000 00000000 00000000 00001100
//是负数最高一位为1表示”负“
//反码:符号位不变,其余的由1-->0 ,0-->1
反码:11111111 11111111 11111111 11110011
//补码:反码+1即可得到补码
补码:11111111 11111111 11111111 11110100
注意!对于无符号的整数来说它的 补码 反码 是与其原码一模一样的
值得一提的是:对于计算机来说,不论是整数数据的存放还是运算,计算机都是以补码的形式进行计算或存放的
总结:原码取反--->反码,反码+1--->补码
补码 先取反 再+1(或者先-1 再取反)得到原码