新知识 | 位运算符(NOT)

简介: “NOT运算符,反转所有位,整数取反,负数取整”

NOT运算符,反转所有位,整数取反,负数取整

01

~

~x 为 对任一数值 x 进行按位非操作的结果为 -(x + 1)

例如:

~5 = -(5+1) = -6

~(-5) = -(-5+1) = 4

~(1.2) = - (1.2+1) = -2

以前使用:

const a = [1, 2, 3, 4, 5]
if (a.indexOf(1) > -1) {
    console.log('存在'); 
}
//5.206ms

使用~的话:

const a = [1, 2, 3, 4, 5]
if (~a.indexOf(1)) {
    console.log('存在');
}
//1.186ms

可以达到同样的效果,并且代码看起来简洁不少,同时后面的运算速度快于前面的。

02

~~

~~x 为 对任一数值 x 进行按位非操作的结果为 -(-(x+1) + 1)

例如:

(-2.99) = -(-(-2.99+1)+1)= -2

以前:console.log(parseInt(-2.99)); //0.417ms

现在:console.log((-2.99)); //0.327ms

使用NOT运算符的速度高于其他

相关文章
|
7月前
|
算法 C语言 开发者
C语言程序设计——算术运算符
C语言程序设计——算术运算符
|
7月前
|
算法 C++
【软件设计师备考 专题 】数学基础知识:命题逻辑、谓词逻辑、形式逻辑与数值计算
【软件设计师备考 专题 】数学基础知识:命题逻辑、谓词逻辑、形式逻辑与数值计算
90 0
|
7月前
|
编译器 C语言 C++
C/C++运算符超详细讲解(系统性学习day5)
C/C++运算符超详细讲解(系统性学习day5)
|
算法 C语言
17【C语言 & 趣味算法】爱因斯坦的数学问题
17【C语言 & 趣味算法】爱因斯坦的数学问题
17【C语言 & 趣味算法】爱因斯坦的数学问题
C#编程-25:数学运算符复习
C#编程-25:数学运算符复习
111 0
C#编程-25:数学运算符复习
|
设计模式 机器学习/深度学习 算法
数学,离一个程序员有多近?
for循环没算法快 1. for 循环实现 2. 算法逻辑实现 3. 耗时曲线对比 四、Java中的算法运用 1. HashMap的扰动函数 2. 斐波那契(Fibonacci)散列法 3. 梅森旋转算法(Mersenne twister) 五、程序员数学入门
263 0
数学,离一个程序员有多近?
|
程序员
程序员数学(19)–一次函数
本文目录 1. 函数概念 2. 解析式 3. 函数的图象(graph) 4. 正比例函数 5. 一次函数 6. 待定系数法
258 0
程序员数学(19)–一次函数
|
程序员
程序员数学(15)--分式
本文目录 1. 分式定义 2. 分式的基本性质 3. 分式的约分 4. 分式的通分 5. 分式的乘法、除法、乘方法则 6. 分式的加减法法则 7. 分式方程
143 0
程序员数学(15)--分式
|
程序员
程序员数学(27)–相似
本文目录 1. 相似多边形 2. 相似三角形 3. 相似三角形判定 4. 相似三角形性质
132 0
程序员数学(27)–相似