左移操作符(<<)
运算规则:将二进制左移动一位。左边丢弃,右边补0。
例:a = 2 << 1 00000010 << 1 = 00000100 = 4 。
右移操作符(>>)
运算规则:将二进制右移动一位。有两种算法,一种是算术右移,右移丢弃,左边补原符号位;另外一种是逻辑右移,右移丢弃,左边补0。(负数是以补码的形式进行)
例:a = 10 >> 1 00001010 >> 1 = 00000101 = 5
a = -1 >> 1 11111111 >> 1 = 11111111 = -1
可以得出是以算术右移运算。
关于负数在内存中存放的是补码。
整数的二进制形式有三种:
原码:直接根据数值写出的二进制序列就是原码。
反码:原码的符号位不变,其他位按位取反就是反码。
补码:反码+1,就是补码。
例:-1
原码:10000001
反码:11111110
补码:11111111