逻辑运算(&、|、^、~)

“&”(位与)运算符 

例如:27&5    //1即00001

11011

00101

————

00001

1与1为1,1与0为0,0与1为0,0与0为0

将十进制转为二进制再进行计算

典型案例:判断奇偶

js中:

var n = 3;

n&1 //1

console.log(n & 1 ? "n是奇数" : "n是偶数")

当n为奇数时返回1,当n为偶数时返回0

“|”(位或)运算符

例如:27&5    //31即11111

11011

00101

————

11111

1或1为1,1或0为1,0或1为1,0或0为0

运用案例 取整

var n1 = 1.79
var n2 = 30.3
var n = n1 | 0 //1
var 2 = n2 | 0 //30

“^”(异或)运算符

例如:27^5  //30

11011

00101

————

11110

1异或1为0,1异或0为1,0异或1为1,0异或0为0

27^11 //16

11011

01011

————

10000

“~”运算符

  • “~”(位非) -- 运算 27~5
第一个数的位值第一个数的位值运算结果运算过程
1 0 0 1位非0=1
1 0 0 1位非0=1
0 1 0 0位非1=1
1 0 0 1位非0=1
1 1 1 1位非1=0

结果为二进制11110转为10进制为30

  • 运用案例 直接取整 字符串数字取整
var n1 = 1.79
var n2 = "30.3”
var n = ~~n1 //1
var 2 = ~~n2 //30
 
踩过这个坑,还有下一个坑等着你,这一路就是给自己填坑,坑填多了,也就习惯了,直到这一路平坦了,也就无怨无悔了。
原文地址:https://www.cnblogs.com/xiaofeilin/p/14789947.html