1. 左移

10 << 1 // 1010(10) --- 10100(20) 公式:a << b 将a左移b位 a * (2^b)

  1. 右移

10 >> 1 // 1010(10) --- 101(5) 公式:a >> b 将a右移b位 a / (2^b)

# 按位操作:

  1. 按位与

每一位都为 1,结果才为 1

  1. 按位或

其中一位为 1,结果就是 1

  1. 按位异或

每一位都不同,结果才为 1

面试题:两个数不使用四则运算得出和

    function sum(a, b) {
        if (a == 0) return b
        if (b == 0) return a
        let newA = a ^ b
        let newB = (a & b) << 1
        return sum(newA, newB)
    }
最后更新时间: 3/28/2021, 9:04:52 PM