我在<< Javascript中的意思是什么?

Jan*_*nak 3 html javascript

我在Stack上搜索了一些素数代码并发现了这个.

我尝试了一段时间并尝试了这个:

var i = 5;
var j = 0;
Run Code Online (Sandbox Code Playgroud)

如果我写j = i << 1,它所做的就是指定(i*2),即在这种情况下-10到j

如果我写j = i << 2,(i*2)*2即 - 10*2 .....等等.

现在我怀疑这个运算符究竟是做什么的?

我试过谷歌搜索,但没有找到任何直接的解决方案.

NIN*_*OOP 6

这些是Javascript 中的按位运算符.

按位运算符将其操作数视为32位(零和1)的序列,而不是十进制,十六进制或八进制数.例如,十进制数字9具有1001的二进制表示.按位运算符在这样的二进制表示上执行它们的操作,但它们返回标准JavaScript数值.

左移运算符:

a << b:向左移位二进制表示b(<32)位,从右移零.