问题
After reading the great answer for Absolute Beginner's Guide to Bit Shifting? I tested the claim (sic):
3,758,096,384 << 1
from Chrome console:
3,758,096,384 << 1
> 768
3,758,096,384 << 2
> 1536
3758096384 << 1
> -1073741824
回答1:
That's the comma operator at work. It's actually 384 << 1. (The comma operator evaluates its left hand side, then evaluates its right hand side, and returns the right hand side.)
回答2:
It returns 768 because you're incorrectly using the comma operator. 3,758,096,384 << 1 will actually be 384 << 1 because the comma operator will return the last operand.
来源:https://stackoverflow.com/questions/12878572/why-does-3-758-096-384-1-give-768