数据分析啦

笔记|二进制

2018-12-18  本文已影响0人  5a41eb2ceec6

路上听了极客时间的数学课,简单做点笔记

什么是二进制?

我们先来看十进制,十进制本质上使用10作为基数。

二进制就是以2作为基数,即二进制的数位就是2^n的形式

我们以 110101 为例子,看看在十进制里,它是谁

二进制

为什么使用二进制?

计算机之所以使用二进制和现代计算机系统的硬件实现有关。组成计算机系统的逻辑电路通常只有两种状态,即开关的接通和断开。由于每位数据只有断开和接通两种状态,所以几遍系统受到一定程度的干扰时,仍然能够可靠地分辨出数字是“0”还是“1”。如果使用十进制,那就要设计10种状态的电路,情况会变得很复杂,判断状态的时候就容易出错。

二进制的位操作

在了解了二进制后,我们再看看计算机语言中针对二进制的位操作(位运算)。即直接对内存中的二进制位进行操作。常见的有向左移位和向右移位的移位操作,以及“或”、“与”、“异或”的逻辑操作。

1.向左移位

比如110101向左移一位,即在末尾添加一位0,因此110101就变成了1101010。

向左移位

在数字溢出(位数超过系统指定的位数)情况下,需要将溢出的位数去除。

此外,我们还能看到此时如果把1101010换算成十进制,就是106,对比先前的53。我们得到一个结论:二进制左移一位,其实就是将数字翻倍

2.向右移位

比如110101向右移一位,即去除末尾的那一位,因此110101就变成了011010。

向右移位

此外,我们还能看到此时如果把011010换算成十进制,就是26,对比先前的53。我们得到一个结论:二进制左移一位,其实就是将数字除以2并求整数商的操作

3.位的“或”

从右向左,对相同位置的数字:参与操作的位中只要有一个位是1,结果就为1(只要有真就为真)

4.位的“与”

从右向左,对相同位置的数字:参与操作的位中必须全部为1,结果才为1(都是真才为真)

5.位的“异或”

从右向左,对相同位置的数字:如果参与操作的位相同,那么最终结果就为 0(假),否则为1(真)(不同才为真)

异或

以上为黄老师课的笔记

程序员数学基础课.jpg
上一篇下一篇

猜你喜欢

热点阅读