From ee1fe70d7bf2cba24a85787db402b347343935c0 Mon Sep 17 00:00:00 2001 From: akakw1 <44433637+akakw1@users.noreply.github.com> Date: Fri, 7 Dec 2018 16:56:15 +0800 Subject: [PATCH] Update bit.md --- docs/math/bit.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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)` -- 2.11.0