为什么3,758,096,384 << 1给768

raa*_*m86 1 javascript bit-manipulation bit-shift

在阅读了Absolute Beginner的Bit Shifting指南的好答案之后 我测试了索赔(原文如此):

3,758,096,384 << 1
Run Code Online (Sandbox Code Playgroud)

来自Chrome控制台:

3,758,096,384 << 1

> 768

3,758,096,384 << 2

> 1536

3758096384 << 1

> -1073741824
Run Code Online (Sandbox Code Playgroud)

0x4*_*2D2 9

它返回768,因为您错误地使用了逗号运算符.3,758,096,384 << 1实际上是384 << 1因为逗号运算符将返回最后一个操作数.


Ry-*_*Ry- 7

那是工作中的逗号运算符.实际上384 << 1.(逗号运算符计算其左侧,然后计算其右侧,并返回右侧.)