左移<<,向左移动一定的位数,高位舍弃,低位补0,但是在移动过程中正数可能变负数,负数变正数。
当int 类型的数据进行左移的时候,当左移的位数大于等于32位的时候,位数会先求余数,然后再进行左移。例如如果真的左移34位 ,a<<(34%32),则移动的位数为2。
右移>>,右移时,低位舍去,对正数高位补0,对负数高位补1。
无符号右移>>>,运算符和右移运算符是一样的,不过无符号右移运算符在右移的时候是补0的,而右移运算符是补符号位的
另外,对于超过32位的位移,和左移运算符一样,,会先进行位数求余数
在正数一般情况下可以用以下规律,可以提高效率,但是当遇到移动位数比较大或者负数时,可能不太适用。