一句话理解
<< 左移:相当于乘 2 的幂。
为什么要学
构造 2^k:1<<k。
讲解
x<<k 在不溢出时等于 x*2^k。1<<31 对有符号 int 会溢出到符号位,常用 1LL<<k。
左移位数不能为负或 ≥ 宽度。
例子
cout << (1 << 3);
输出:
8
1 变成 1000₂,即 8。
常见错误
- 1<<40 用 int。
- 1<<31 当 2^31 的正数。
第 216 课
<< 左移:相当于乘 2 的幂。
构造 2^k:1<<k。
x<<k 在不溢出时等于 x*2^k。1<<31 对有符号 int 会溢出到符号位,常用 1LL<<k。
左移位数不能为负或 ≥ 宽度。
cout << (1 << 3);
输出:
8
1 变成 1000₂,即 8。
2 的 k 次方常写 1LL << ____
Ctrl / ⌘ + Enter 运行 · Tab 缩进
左右方向键也可翻课