1. << 左移
数学意义:在数字没有溢出的前提下,对于正数和负数,左移一位相当于乘以2的1次方,左移n位相当于乘以2的n次方。
比如 5 << 2 = 5 * 2的2次方 = 5 * 4
2. >> 右移
数学意义:在数字没有溢出的前提下,对于正数和负数,右移一位相当于除以2的1次方, 右移n位相当于除以2的n次方。
比如 11 >> 2 = 11 / 2的2次方 = 11 / 4
3. >>> (无符号右移)
int a = 8;
int b = 32;
a >>> b 等价于 a >>> (b%32)


举例:
1.用位移运算符来实现 i * 100
<1>. 100 = 64 + 32 + 4
<2>. 所以 i * 100 可以这样来表示: ( i << 6 ) + ( i << 5 ) + ( i << 2 )