移位运算有左移运算<<
右移运算>>
和无符号右移运算>>>
移位运算就是把二进制数据按每一位进行向左移或向右移动的运算
<<就是将数据所有二进制位向左位,运算时,右边的空位补0,左边移走的部分舍去。
>>就是将数据所有二进制位向右移位,运算时,左边的空位补0或1(正数补0,负数补1)
>>>就是将数据所有二进制位向右移位,运算时,左边的空位补0,不考虑正负。
值得注意的是:当移动的位数超过了该类型数据的最大位数,那么编译器会对移动的位数去模类型的最大位数,然后按照取模结果进行移位。
比如说:int a = 2 //整数2的二进制总共有32位
a<<33 //把2移动33位其实就是33%32=1,就是等同于 a<<1
|
|