左移运算符(<<)和右移运算符(>>)

左移运算符 <<

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\)

理由很简单, 转化为二进制就可以发现规律.

posted @ 2021-06-25 18:06  dbg_8  阅读(1824)  评论(0编辑  收藏  举报