赞
踩
二进制每左移一位就是*2,两位就是*2*2,三位就是*2*2*2.
1先转成二进制 在左移n位 然后补0
比如 1<<2 1的二进制为 0000 0001 左移2位 0000 0100.
n=1 即 1*2
n=2 既1*2*2
n=3 既1*2*2*2
就是进行二进制的翻倍。
1>>n就是1右移n位
n>>1就是n右移1位
1<<n就是1左移n位
n<<1就是n左移1位
int m=1<<n
右移操作(>>)
规则:
左边空出的位用0或者1填补。正数用0填补,负数用1填补。注:不同的环境填补方式可能不同;
低位右移溢出则舍弃该位。
右移一位相当于除以一个2
例如:20 的二进制为 0001 0100 ,那么10右移3为就是 0000 0010,结果就是2。
20>>3 ==2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。