原码、反码、补码是计算机中对数字的二进制表示方法。
原码:将最高位作为符号位(0表示正,1表示负),其它数字位代表数值本身的绝对值的数字表示方式。
反码:如果是正数,则表示方法和原码一样;如果是负数,符号位不变,其余各位取反,则得到这个数字的反码表示形式。
补码:如果是正数,则表示方法和原码一样;如果是负数,则将数字的反码加上1(相当于将原码数值位取反然后在最低位加1)。
总结:正数的原码、反码、补码完全一样,只有负数需要按照以上规则计算。
字节型数据,占8位,那么它的原码、反码、补码都是8位。字节型数据只有8位,只能表示0~255。
字型数据,占16位,那么它的原码、反码、补码都是16位。字型数据占16位,可以表示0~65535。
负数在计算机中以补码的形式存在!
三者的规制:
一、正整数的原码、反码、补码完全一样,即符号位固定为0,数值位相同
二、负整数的符号位固定为1
右移和左移正负数之间是有区别的:
对于正数而言:无论是右移还是左移都是用0来补全空位,
但是对于负数而言:就不是这样了,(小口诀):左移右补0,右移左补1
图1 -2>>3的计算方法
图2 -2<<3的计算方法