程序员数学 001 二进制

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+"为偶数")
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    许先生__阅读 624评论 0 3
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    徵羽kid阅读 715评论 0 0
  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 678评论 0 0
  • 本章将会介绍 模块和源文件访问级别访问控制语法自定义类型子类常量、变量、属性、下标构造器协议扩展泛型类型别名位运算...
    寒桥阅读 910评论 0 2
  • phpthink在安装过程中出现了两个小问题:1.start.php not found问题原因:文件路径问题.解...
    InitialX阅读 1,195评论 0 0