js位运算符的妙用-1

在日常开发中真的而很少用到位运算符了 ,偶尔在一边博文里面看到了一个位运算符 ^ 的妙用,惊叹于它的神奇,特此学习了一下,记录此文。

位运算符的种类

分为以下种类:

  1. & 按位与 :

    1
    2
    3
    4
    5
    100101
    001011
    _______
    000001
    # 都是 1 才等于 1
  2. | 按位或

    1
    2
    3
    4
    5
    100101
    001011
    _______
    101111
    # 至少有一个是 1 就等于 1
  3. ^ 按位异或

    1
    2
    3
    4
    5
    100101
    001011
    _______
    101110
    # 只有一个 1 才等于 1
  4. ~ 按位非

对一个二进制所有为取反 , 在+1 在转成10进制
效果相当于 取负数在-1

1
~21 = -22;

  1. >>按位右移

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // 就是字面意思的将 有效位往右边移动 n 位

    22 >> 1
    //22 ===> 10110
    // 移动一位 ===> 1011
    // 11

    22>>3
    /** 22 === > 10110
    * 右移动3位 10
    * 2
    */
  2. << 按位左移
    与右移同理, 用 0 补位

位运算符的妙用

见下篇

end