a << b, 指将 a 转化为二进制后将所有数字向左移动 b 位, 末尾用 0 补齐.
可以简单理解为在末尾添上 b 个 0 的操作.
这里二进制的 1 变为 1000, 即十进制的 1 变为 8.
这里二进制的 11 变为 110000, 即十进制的 3 变为 48.
1 << x = 2 ^ x
理由很简单, 转化为二进制就可以发现规律.
与左移运算符类似.
a >> b, 指将 a 转化为二进制后将所有数字向右移动 b 位, 前端用 0 补齐, 小数位部分舍去.
这里二进制的 1000 变为 1, 即十进制的 8 变为 1.
与左移运算符相比, 右移运算符用的要少一些.
原文:https://www.cnblogs.com/RuiyangWu/p/14932086.html