## 位运算的应用
-å¦\82æ\9e\9c $num$ æ\98¯æ£æ\95°ï¼\8c`num << i` ç\9b¸å½\93äº\8e $num$ ä¹\98以 2 ç\9a\84 $i$ 次æ\96¹ï¼\8cè\80\8c `num >> i` ç\9b¸å½\93äº\8e $num$ é\99¤ä»¥ 2 ç\9a\84 $i$ 次æ\96¹。 (位运算比 `%` 和 `/` 操作快得多)
+å¦\82æ\9e\9c $num$ æ\98¯æ\95´æ\95°ï¼\8c`num << i` ç\9b¸å½\93äº\8e $num \times 2^i$ ï¼\8cè\80\8c `num >> i` ç\9b¸å½\93äº\8e $num \div 2^i$ 。 (位运算比 `%` 和 `/` 操作快得多)
(据 2018JSOI 夏令营,效率可以提高 60%)
!!! warning
- 为什么要强调是正数呢?考虑一下 `-1 >> 3`
+ 我们平常写的除法是向 0 取整,而这里的右移是向下取整(注意这里的区别),即当数大于等于 0 时两种方法等价,当数小于 0 时会有区别,如: $-1 \div 2 = 0$ ,而 $-1 >> 1 = -1$
`num * 10 = (num<<1) + (num<<3)`