<<在JavaScript中做什么

what does << do in javascript

本文关键字:什么 JavaScript      更新时间:2023-09-26

可能的重复项:
位移位的绝对初学者指南?
什么是JavaScript>>>运算符,你如何使用它?

我在阅读一些代码时遇到了<<

1<<1 //2
2<<1 //4
3<<1 //6
3<<2 //12 

  • 这叫什么?
  • 这是做什么的?
  • 自这个答案:

    <小时 />

    左移 (<<(

    整数作为一系列位存储在内存中。 例如,存储为 32 位int的数字 6 将是:

    00000000 00000000 00000000 00000110
    

    将此位模式向左移动一个位置(6 << 1(将导致数字 12:

    00000000 00000000 00000000 00001100
    

    如您所见,数字已向左移动一个位置,右侧的最后一个数字填充为零。 您可能还会注意到,左移等效于乘以 2 的幂。 所以6 << 1等价于6 * 26 << 3等价于6 * 8。 一个好的优化编译器会在可能的情况下用移位代替乘法。

    非圆形换档

    请注意,这些不是循环班次。 将此值向左移动一个位置 ( 3,758,096,384 << 1 (:

    11100000 00000000 00000000 00000000
    

    结果为 3,221,225,472:

    11000000 00000000 00000000 00000000
    

    "从末端"移位的数字将丢失。 它不会环绕。

    它是按位左移运算符。

    a << b 会将b位移动到 a 的二进制表示的左侧。