js位运算

158 阅读1分钟

首先上原文章地址:blog.csdn.net/u014395524/…

首先上原文章地址:www.w3school.com.cn/js/js_bitwi…

首先上原文章地址:leetcode-cn.com/problems/di…

首先上原文章地址:www.cnblogs.com/mopagunda/p…

骚操作来了

1、按位非(NOT)(~)

  1. 操作符由一个波浪线表示(~),对位求反(0变为1,1变为0),结果是返回数值的反码。
  2. 对一个整数 num 按位取反,结果等于 它的相反数减1,即 ~num = -num - 1。
  3. ~~6.7890809 === Math.floor(6.7890809)

2、按位与(AND)(&)

  1. 可以用一个数和1进行按位&操作来判断其奇偶性,比如 num&1,若为1,则num是奇数;若为0,则num是偶数。

4、按位异或(XOR)(^)

  1. “异或运算”有一个特殊运用:连续对两个数a和b进行三次异或运算(aˆ=b; b^=a; a^=b;),可以互换它们的值。

5、左移 (<<)

        操作符由两个小于号(<<)表示,会将数值的所有数位向左移动指定的位数,右边的空位用0填充。左移不影响操作数的符号位。

    `x<<i`相当于`x*2^i`  eg:10<<1 === 10*(2**1)

6、有符号右移 (>>)

操作符由两个大于号(>>)表示,会将数值的所有数位向右移动指定的位数,同时保留该数的符号。

    `x>>i`相当于`x/2^i` eg:10>>i === 10/(2**1)