js 位运算符
2021-06-01 00:04
标签:执行 -- lse 符号 logs ons 针对 第一个 计算 逻辑位运算符:位与( 移位运算符:左移( js 位运算符 标签:执行 -- lse 符号 logs ons 针对 第一个 计算 原文地址:https://www.cnblogs.com/frank-link/p/14608876.html位运算就是对二进制数执行计算,是整数的逐位运算。例如,
1+1=2
,在十进制计算中是正确的,但是在二进制计算中,1+1=10
;对于二进制数 100
取反,等于 001
,而不是 -100
。位运算符有
7
个,分为两类:
&
)、位或(|
)、位异或(^
)、非位(~
))、右移(
>>
)、无符号右移(>>>
)逻辑位运算符与逻辑运算符的运算方式是相同的,但是针对的对象不同。逻辑位运算符针对的是二进制的整数值,而逻辑运算符针对的是非二进制的值。
&
运算符
&
运算符(位与)用于对两个二进制操作数逐位进行比较,并根据下表所示的换算表返回结果。
第一个数的位值
第二个数的位值
运算结果
1
1
1
1
0
0
0
1
0
0
0
0
在位运算中,数值
1
表示 true
,0
表示 false
,反之亦然。console.log(12 | 5); //返回值13
下图以算式的形式解析了
12
和 5
进行位或运算的过程。通过位或运算,除第 2
位的值为 false
外,其他位均返回 true
。
^
运算符
^
运算符(位异或)用于对两个二进制操作数逐位进行比较,并根据如表格所示的换算表返回结果。
第一个数的位值
第二个数的位值
运算结果
1
1
0
1
0
1
0
1
1
0
0
0
console.log(12 ^ 5); //返回值9
下图以算式的形式解析了
12
和 5
进行位异或运算的过程。通过位异或运算,第 1、4
位的值为 true
,而第 2、3
位的值为 false
。
~
运算符
~
运算符(位非)用于对一个二进制操作数逐位进行取反操作。
1
步:把运算数转换为 32
位的二进制整数。2
步:逐位进行取反操作。3
步:把二进制反码转换为十进制浮点数。console.log(~12); //返回值-13
下图以算式的形式解析了对 12 进行位非运算的过程。
位非运算实际上就是对数字进行取负运算,再减
1
。例如:console.log(~12 == 12 - 1); //返回true