【发布时间】:2019-01-29 03:59:29
【问题描述】:
我了解偏移运算符对数字执行乘法和除法。因此,当我有 80 >> 3 时,我将其翻译为将 80 除以二、三倍。当我看到这个 80
【问题讨论】:
-
why is 1>>32 == 1?的可能重复
-
您需要指定您正在谈论的编程语言。运算符的行为是特定于语言的。但对于 Java,请参阅链接问题。
-
@StephenC 我说的是 Python 和 Node.js。
-
他们的行为不同。 Javascript遵循Java模型;见ecma-international.org/ecma-262/5.1/#sec-11.7。对于 python,规范说
a << N等同于a * pow(2, N)...截断为整数。 -
除非您的语言中的整数是 103 位(或任意精度)类型,否则 9*2^99 显然不适合该类型并会溢出
标签: bit-manipulation bitwise-operators bit bit-shift