正数的原码,反码和补码都是一样.
负数的反码是在原码的基础上,保持符号位(第一位)不变,后面的每一位都取反,负数的补码是在反码的基础上 +1.
怎么解释上面这些计算数字呢,想知道这个其实只要知道左移右移到底是移什么.
将3的原码00000011往左移动一位是00000110,这个表示十进制是6.
将3的原码00000011往右移动一位是00000001,这个表示十进制是1.
将-3的补码1111101往左移动一位是1111010,然后-1得到反码1111001,再取反得到原码0000110,这个表示十进制是-6.
将-3的补码1111101往右移动一位是0****111110,然后-1得到反码0111101,再取反得到原码1000010这个表示十进制是-2.
正数左右移就是原码的左右移.
负数的左右移是补码左右移之后再-1得到反码,然后取反得到原码.