左移运算符(<<)和右移运算符(>>)
左移运算符 <<
a << b, 指将 a 转化为二进制后将所有数字向左移动 b 位, 末尾用 0 补齐.
可以简单理解为在末尾添上 b 个 0 的操作.
举例
- 1 << 3 = 8
这里二进制的 1 变为 1000, 即十进制的 1 变为 8.
- 3 << 4 = 48
这里二进制的 11 变为 110000, 即十进制的 3 变为 48.
右移运算符 >>
与左移运算符类似.
a >> b, 指将 a 转化为二进制后将所有数字向右移动 b 位, 前端用 0 补齐, 小数位部分舍去.
举例
- 8 >> 3 = 1
这里二进制的 1000 变为 1, 即十进制的 8 变为 1.
EXTRA (常用)
\(1 << x = 2^x\)
\(x<<1=2x\)
\(x>>1=x/2\)
理由很简单, 转化为二进制就可以发现规律.
( ゚∀゚)o彡゜ ヒーコー ヒーコー!