乐趣区

关于javascript:位运算符

  1. 与 &
    按位比照两个二进制数,如果对应的位都为 1,则后果为 1,否则为 0

    1 & 3 == 1

    9 & 8 == 8

  1. 或 |
    按位比照两个二进制数,如果对应的位有一个 1,则后果为 1,否则为 0

    (1 | 3) == 3

  1. 异或 ^
    按位比照两个二进制数,如果对应的位有且只有一个 1,则后果为 1,否则为 0

    (1 ^ 3) == 2

  1. 非 ~
    按位对操作的二进制数取反,即 1 变 0,0 变 1,任何数的非运算符计算结果都是 -(x + 1)
    一个数和它的取反数相加的后果总为 -1
  1. 左移 <<
    左移会将二进制值的有效位数全副左移指定位数,被移出的高位 (最右边的数字) 抛弃,但符号会保留,低位 (最左边的数字) 会主动补 0

    1 << 2 == 4

  1. 右移 >>
    和左移相同的操作,将二进制的操作数右移指定位数,高位补 0,低位抛弃

    4 >> 2 == 1

退出移动版