1.什么是二进制?
十进制计数使用10作为基数,二进制使用2作为基数,二进制的位数是2^n的形式。
2.计算机为什么使用二进制?
二进制的数据表达具有抗干扰能力强、可靠性高的优点;
二进制非常适合逻辑运算;
3.二进制的位操作
移位操作:
二进制左移一位,就是将数字翻倍;
//10左移一位 = 20
console.log("10 << 1 = " + (10 << 1));
二进制右移一位,就是将数字除以2并求整数商;
//11右移一位 = 5
console.log("11 >> 1 = " + (11 >> 1));
逻辑操作:
“或”:参与操作的位中只要有一个是1.最终结果就是1;
操作符: |
console.log("53 | 35 = " + (53 | 35))
“与”:参与操作的位中必须全部是1,最终结果才是1,否则就为0;
操作符: &
console.log("53 & 35 = " + (53 & 35))
“异或”:参与操作的位相同,最终结果就为0,否则为1;
操作符:^
console.log("53 ^ 35 = " + (53 ^ 35))
【最后】来一个本篇所有的代码合集
console.log("10 << 1 = " + (10 << 1));
console.log("11 >> 1 = " + (11 >> 1));
console.log("53 | 35 = " + (53 | 35))
console.log("53 & 35 = " + (53 & 35))
console.log("53 ^ 35 = " + (53 ^ 35))
【补充】位运算的骚操作
//1.用位运算实现的 10进制转2进制
var binaryToDecimal = function(number){
var str = ""
var sym = number<0?"-":""
number = Math.abs(number)
while(number != 0){
str += (number & 1)
number = number >> 1
}
return sym + str.split("").reverse().join("")
}
console.log("53的10进制转2进制 = "+ binaryToDecimal(53))
//2.用位运算判断奇偶数
var n = 53
if(n & 1){
console.log(n+"为奇数")
}else{
console.log(n+"为偶数")
}