OSDN Git Service

Update bit.md
authorakakw1 <44433637+akakw1@users.noreply.github.com>
Fri, 7 Dec 2018 08:56:15 +0000 (16:56 +0800)
committerGitHub <noreply@github.com>
Fri, 7 Dec 2018 08:56:15 +0000 (16:56 +0800)
docs/math/bit.md

index 09cdc43..8828589 100644 (file)
 
 ## 位运算的应用
 
-å¦\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)`