基础:
左移运算符m<<n
,表示把m左移n位,左移n位的时候,最左边的n为将丢掉,同时在最右边补上n个0;比如:
01100010<<2=10001000
右移运算符m>>n
表示把m右移n位,右移时,最右边的n位将去掉,原先为正数的,在最左边补上n个0;原先为负数的,在最左边补上n个1.比如:
01100010>>2=00011000
10100010>>3=11110100
应用:
位运算比乘除法高效很多,所以编程时能用位运算的尽量用位运算。
乘除法:n>>1
代替 n/2
- 除2 = 右移1位 乘2 = 左移1位
- 除4 = 右移2位 乘4 = 左移2位
- 除8 = 右移3位 乘8 = 左移3位
求余数,判断奇偶: n&1==1
代替 n%2==1