基础数学课1-二进制

这一章节,首先是从二进制开始讲起,在之后说计算机中涉及到的其他数学原理。

二进制想必对广大程序员并不陌生,比如我们将10进制转到2进制的数时候,就是利用1*2的不同次方来进行计算

对应在代码中,二进制和十进制的转换可以很好的利用封装的函数实现,可以直接使用

new BigInteger(String.valueOf(123)).toString(2)

利用toString时的2作为参数,可以获得二进制后的字符串。

虽然提供很多语法糖和函数供程序员使用,但是计算机在实际运行的时候,采用的是二进制,其主要原因是因为准确性和硬件实现。

因为在计算机中,往往逻辑电路只有两种状态,分别是开关的接通和断开。

其次是在准确性方面,因为即使收到一定的干扰,但是系统仍然可以有效的区分出是0还是1,所以二进制具有可靠性高的优点。

而且二进制在电路中的加减乘除实现起来并不困难,可以利用位移或者异或的方式实现。

对于移位来说,分为向左移位和向右移位

向左移位就是在末尾添加一位0,相当于*2的逻辑

但是需要注意的是可能存在数字溢出的问题,就是二进制向左移位的时候,位数超过了系统指定的位数。

其次是向右移位

在向右移位的过程中,就是去除掉末尾的一位,因此110101变成了11010,也就是53变成了26,即数字除以2求整数商的操作。

并且在右移过程中,分为了带符号位位移和不带符号位位移两种。

也就是逻辑右移和算数右移两种

其中算数右移的符号位不变,除符号位其他右移

逻辑右移则是符号位带着右移

其中逻辑右移在Python中使用>>>表示,而算数右移则是>>表示

最后是或操作

也就是二进制之中,只要有一个是1,结果就是1

与操作,则是对应位全部为1才能是1,不然就是0

还有异或操作,则是如果操作位相同,则得到0,不然为1

这里我鹅们简单总结一下,我们在这里说二进制为什么被使用,以及二进制的基本计算。其作为现代计算机的基石,承载着大量的基本概念和操作实现。

发表评论

邮箱地址不会被公开。 必填项已用*标注