1、<< 、<<= 、>> 、>>的用法以及区别
<<(左位移):
例如 int a = 2 ; b = a << n ; 如果 n=3,那么 b=16
左移n位实际上相当于乘以2的n次方:
for(int i =1;i<=n;i++)
a = a * 2 ;
>>(左位移):
右移n位实际上相当于被2的n次方整除:
for(int i =1;i<=n;i++)
a = a / 2 ;
<<=:
a<<=1等价于a=a<<1,就是将a按位左移后将值赋值给a
a<<1只是将a按位左移,并不改变a的值
原文:http://www.cnblogs.com/MrZivChu/p/xiaozhishi.html