“&”(位与)运算符
例如: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