二进制是什么?

552 阅读7分钟

我们生活在一个信息时代,而这些信息被存储、传输和处理的方式,全部是基于二进制的,那到底什么是二进制呢?它真的复杂到只有专业的技术人员才能懂吗?所以从这一期开始,Co哥想要跟大家一起探索一下二进制,我们先从一段历史开始我们的探索之旅吧。

一段历史

1705年,德意志数学家、哲学家莱布尼兹在当年出版的《1703年皇家科学院年鉴》发表了一篇名为《论只使用符号0和1的二进制算术,兼论其用途及它赋予伏羲所使用的古老图形的意义》的论文,论文中介绍了二进制的用途以及在中国的八卦中隐含着的二进制思想,这是现代我们所使用的二进制的起源,而神奇的是,莱布尼兹认为二进制是伏羲八卦的秘密。

八卦图和二进制

然而,当时人们真的很难看出来二进制相比于日常使用的十进制有什么优势,哪怕是现在,我们在日常生活中也不会直接使用二进制呀,毕竟十进制的100,用二进制写就是1100100,一点都不简单呀,而且也不容易读出来。而这一切,在1854年乔治·布尔提出了布尔代数之后,开始变得不一样了,布尔发现,如果在逻辑推理中,用1来表示真,0来表示假,就可以使用代数的方式进行逻辑推理,以此还能总结出很多的运算规则,非常适合描述复杂的推理过程。在1937年,克劳德·香农在乔治·布尔的基础上,用继电器和开关实现了布尔代数和二进制算术运算,人类自此开启了计算机的二进制时代,才有了当前信息时代的一切。

关于十进制

历史介绍完了,不过在介绍二进制之前,我们首先得探究一下我们所熟悉的十进制,我相信看这篇文章的你,对于十进制这种我们每天都离不开的工具,已经属于深入骨髓的熟悉了吧,那你稍微动动你的小脑袋想想你非常熟悉的十进制,你会想到什么呢?你可能会想起来1+1=2或者2✕3=6这些运算规则,再或者上个月我银行卡里有100,刚发了工资20000,现在卡里有20100之类的。不过这都属于建立在十进制之上运算规则啦,而就十进制的数字本身而言,我们可以发现几个特点:

  • 我们用来表示十进制的符号,只有0,1,2,3,4,5,6,7,8,9这十个,所有的数字要嘛是这些符号单独使用的情况,要嘛是组合使用的结果
  • 在十进制中,有个位、十位、百位等不同的位,每一个位所代表的数量级相差非常大,而相邻的两位数字,左侧数字的数量级是右侧数字的十倍,看到一个数字时,我们都是从左向右看的,因为左侧的数量级对我们来说更重要,当我们看到1502时,1虽然比5小,但是1的影响力比5大,我们知道在这里1表示1000,5表示500,这种位的数量级大小在术语上称为位权
  • 我们知道一位数的最大值是9,再往上就会变成两位数10,而0虽然单独使用的时候表示,不过在多位数里,它作为占位符,能量很大,毕竟我们都希望自己的存款后面多几个0
  • 在从9变成10,或者从59变成60的时候,我们发现在同一位上,9再往上就会又回到0,同时会在左侧的位上+1,这种方式,术语称为逢十进一,也是十进制这个名称的来源

十进制特点总结完毕,我们继续往下看⬇️

二进制的表示方式

总结完十进制的特点,我突然觉得可能大家已经明白什么是二进制了,我没有继续写下去的必要了🤪。不过,我的强迫症告诉我,为了文章完整性,我还得把大家已经猜到的再写一遍。

首先,既然要二进制,那我们只需要两个符号了,不再需要那么多的符号了,就保留两个最简单的01吧,剩下的其他数字我们都通过01的组合来表示,简单又完美!切记,你只有01可以用

不过,既然十进制从低位到高位的位权依次是1、10、100、1000...,都是10的指数,那我们二进制就来个2的指数作为位权,应该没毛病吧?所以我们从低到高的位权就依次是1、2、4、8...,这么说来,2的表示不就很简单了?可以用10来表示啊,不理解吗?没关系,让Co哥用逢二进一给你用动图揭示一下吧,我们先来看一下1是怎么变成用10表示的2的:

我们继续往下看,2+1=3,3是怎么表示成11的:

继续呢,3+1=4,是怎么表示的:

怎么样?是不是深刻的明白了什么叫逢二进一了呢?所以二进制的表示跟十进制没有本质区别,区别只有使用符号数量的不同和位权的不同。

进制转换

二进制转十进制

二进制相比于十进制,其实是增加了位的数量,从而减少了使用符号的数量,因为位的增多和我们日常基本用不上二进制的缘故,所以我们遇到一个二进制,很难一瞬间就知道其所表示的数值含义,所以我们还是需要将其转换为十进制后,才能很直观的了解其实际的含义的。二进制转换为十进制的方式就是利用其每一位的位权,我们将1所在位的位权加起来,就能得到其所对应的十进制数字,举个例子,我们想要将10101010转换为10进制,过程如下:

是不是很简单?你唯一需要关注的是位权的大小,前面说了,二进制中的位权是2的指数,从右往左是从0次幂开始计算的,所以最低位是20=12^0=1,第二位是21=22^1=2,以此类推。

十进制转二进制

相对于二进制转十进制,十进制转为二进制就没有那么容易,需要使用除法取余的方式来完成,我们将十进制的20转换为十进制的过程如下:

这个过程确实有些复杂,不过现在不管是手机还是电脑上,都有很多的计算器支持进制转换,大家不妨可以借助工具来进行这一过程。

总结

相信经过上面的介绍,大家对二进制已经有了很直观的感受了吧?在接下来,Co哥还会给大家分享二进制更深的一些特性以及应用,包括我们所看到的文字在计算机中是怎么存储的,我们在计算各种整数、小数的时候,计算机又是怎样处理的。

道德经说:「道生一,一生二,二生三,三生万物」,意为天地万物都始于阴阳,在计算机世界里也同样适用,借助二进制,才有了信息存储、运算、传输的根基,而信息又成为了现代世界运行的基础!