C++ 左移 (<<)、右移 (>>) 用法总结

C++ 左移 (<<)、右移 (>>) 用法总结

  1. 左移 << = 快速 × 2ⁿ
    x << 1 → x * 2
    x << 2 → x * 4
    x << k → x * 2^k

  2. 右移 >> = 快速 ÷ 2ⁿ(向下取整)
    x >> 1 → x / 2(整数除法,向下取整)
    x >> k → x / 2^k

  3. 快速计算 2 的幂
    1 << n 就是 2ⁿ,替代 pow(2,n)(避免浮点误差)

  4. 位运算:取 / 设 / 清第 k 位
    获取第 k 位 (x >> k) & 1 把第 k 位移到最低位,和 1 相与
    设置第 k 位为 1 x |= (1 << k)` 不改变其他位,只把第 k 位设 1
    清空第 k 位为 0 x &= ~(1 << k) 只把第 k 位设 0
    翻转第 k 位 x ^= (1 << k) 0 变 1,1 变 0

  5. 快速判断奇偶
    x & 1 等价 x % 2,速度更快
    奇数:x & 1 == 1
    偶数:x & 1 == 0

  6. 交换两个数(不用临时变量)
    a ^= b;
    b ^= a;
    a ^= b;

posted @ 2026-03-24 21:40  lagranSun  阅读(6)  评论(0)    收藏  举报