如何左移大于 32 位的数字?

How to left-shift numbers greater than 32-bits?

据我了解,JS 在执行位移操作时将数字视为 32 位,即使它支持 64 位数字。

如何实现适用于 64 位数字的 leftShift 函数?也就是说,对于 192 << 24 之类的东西,它不会转入底片(应该是 3221225472,而不是 -1073741824)。

就像 left shift 的数学运算一样:

Arithmetic shifts are equivalent to multiplication by a positive (to the left) or by a negative number (to the right), integral power of the radix (e.g. a multiplication by a power of 2 for binary numbers).

function shift(number, shift) {
    return number * Math.pow(2, shift);
}

shift(192, 24)
//3221225472

shift(3221225472, -24)
//192