From: akakw1 <44433637+akakw1@users.noreply.github.com> Date: Fri, 7 Dec 2018 08:56:15 +0000 (+0800) Subject: Update bit.md X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ee1fe70d7bf2cba24a85787db402b347343935c0;p=oi-wiki%2Fmain.git Update bit.md --- diff --git a/docs/math/bit.md b/docs/math/bit.md index 09cdc43c..88285896 100644 --- a/docs/math/bit.md +++ b/docs/math/bit.md @@ -79,11 +79,11 @@ ## 位运算的应用 -如果 $num$ 是正数,`num << i` 相当于 $num$ 乘以 2 的 $i$ 次方,而 `num >> i` 相当于 $num$ 除以 2 的 $i$ 次方。 (位运算比 `%` 和 `/` 操作快得多) +如果 $num$ 是整数,`num << i` 相当于 $num \times 2^i$ ,而 `num >> i` 相当于 $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)`