正负数的原码反码补码/字节和比特的换算
*原码反码补码/字节和比特的换算
1byte(字节)=8bit(比特)最小的单位,1个比特等于二进制的一个1或者0。
1.正数原码
一个正数它的二进制数字就是它的原码,得出来的数最后的要在前面,高位用0补齐。
Demo 12 (8位为例)
原码:0 0 0 0 1 1 0 0
2.正数反码
正数的反码和正数的原码二就是二进制那组数,是一样的,可以直接搬过来。
Demo 12
原码是0 0 0 0 1 1 0 0
反码则也是0 0 0 0 1 1 0 0
3.正数的补码
正数的补码与原码相同,规定。
Demo 12
原码:0 0 0 0 1 1 0 0
补码:0 0 0 0 1 1 0 0
4.负数原码
就是该数的绝对值,比如-12的绝对值就是12,它的二进制也就是它的原码,高位补个1就可以了。
Demo-12
正12原码:0 0 0 0 1 1 0 0
负12的原码:1 0 0 0 1 1 0 0
5.负数反码
负数反码是负数原码(就是高位补1那个),除了符号位(用于表示二进制中一个数字的正或者负,最左边的一位),都0变1,1变0即可。
Demo -12
原码:1 0 0 0 1 1 0 0
反码:1 1 1 1 0 0 1 1
6.负数的补码
该数的的原码的最高位补1的符号位以外,各取反值1变0,0变1,也就是负数的反码,最后一位加1,另外二进制逢二进一。
Demo -12
负数的反码1 1 1 1 0 0 1 1
负数的反码:1 1 1 1 0 1 0 0
7.负数的二进制
负数的二进制是以负数的补码显示的。
总结:正数的原码,补码,反码都相同,都等于它本身
负数的补码是:符号位为1,其余各位求反,末位加1
反码是:符号位为1,其余各位求反,但末位不加1
也就是说,反码末位加上1就是补码
1byte(字节)=8bit(比特)都是数据大小的计量单位。
-1011
原码:11011
反码:10100 //负数时,反码为原码取反
补码:10101 //负数时,补码为原码取反+1
移码:00101 //原数+10000