深入理解计算机为什么采用二进制

  相信很多人即使不怎么关注科技圈、电子产品,也能知道一个常识,我们所用的所有电子设备都采用二进制进行运算,但如果究其原理可能很多人都无法说清楚,所以创作的第一篇文章,我们就来聊聊,计算机为什么采用二进制进行计算。

一、什么是进制

  在我们平常的生活中,所用的1、2、3....9、10这种的数字是逢十进一,因此被称为十进制,进制的意思也就是几位数进一位,而计算机采用的二进制则为逢二进一,举个例子,在十进制中表示10这个数字为“10”,而在二进制中则为“1010”,两者是数值上相等的关系,只是表达方式不一样,常见的进制还有八进制、十六进制、三十二进制,在此要多说一句,在十进制以上多出的位数将由英文字母依次代替,比如十六进制下11则表示成A,15则表示成F。“位”则是含有数字的个数,比如10就是2位数,1010则为4位数。

二、计算机的起源以及浅层意义上使用二进制的原因

  在讲解之前,我们先要知道最初计算机的发明并不是为了像今天那样刷视频、打游戏、网上购物等等,而是一个很纯粹的目的——计算。计算机想法的形成背景是在于二战期间,目的是为了解决大量运算以及高精度运算的问题,在这个背景下,美国军方带领一部分科学家成立实验室,在这之后诞生了世界第一台计算机——ENIAC。最初的计算机是采用十进制的,其体积庞大,耗电量也巨大,但其计算能力也已经远超当时其他计算设备,这也让计算机的发展逐渐被重视。

世界上第一台计算机

  随着时间的推移,人们忽然发现通过十进制计算的机器效率低下并且维护成本很高,这是由于最初的计算机采用电子管来作为计算元件,而控制数字主要以改变电压来实现,但十进制需要表示0-9十个数字,因此在调控电压时就很不方便,稍有异常就会发生错误,在这以后科学家渐渐采用二进制进行计算,低电平表示0,高电平表示1,进行逻辑运算后再将结果转换为十进制,这样可以大大增加稳定性,并在以后被广泛应用......

但真的,就这么简单嘛?

  起初的我也是这么简单的认为,但是在某一天里我就在想,计算机应该算是20世纪最伟大的发明,而每一个发明的背后,都应该有着严谨细致的分析,怎么可能这么草率,顺着这个思路,我查阅了相关资料,找到了一个让我认可的答案。

三、通过数学推导证明二进制的正确性

  注:下面将进入数学推导阶段,需要高中数学知识水平,如认为枯燥可跳过推导部分。
  在计算机中每一个数字会对应一个状态,而每一个状态需要实际的分配到内存中进行存储,就比如十进制中0-9这10个数字,在计算机中需要有10块内存去分别存储,因此越少的状态也就代表了空间开销越小,这是我们想要的,我们设状态量为S,那么n位的R进制数则有 n·R的状态,即S = n·R

简单的去解释一下上面的内容,假设要表示从0-99的数字,对于十进制来讲需要两个位,每个位从0-9,状态量为20,但如果用二进制则是从0到0110 0011,那么需要8位,每个位有两个数字,状态量为16,因此印证了S = n·R这个公式,并且在表达相同数据下,二进制所用的空间要小于十进制,效率更高。

在这里插入图片描述

  但此时得到的式子我们无法确定S的最小值,因为n和R都是变量,所以需要引入一个值来与上述量产生关联,我们在比较其空间利用的时候往往需要以恒定的值来比较,比如我单纯说十进制的10和二进制的1111(意为十进制15)是没有意义的,因此我设其R进制数所有表示的n位最大值为M,因此可得M = R^n^-1,通过指对互化我们可得log~R~(M+1) = n

比如2位的十进制,其最大表示数字是99,正好为10^2^-1,以此类推

在这里插入图片描述

  通过上述推导我们知道了理论上当为e(自然底数)进制时状态量S的值是最小的,也就是效率最高,但在实际开发中我们无法用一个无理数e来做单位,这样会给很多事增加麻烦,因此就选择了e(约等于2.71828)周围的整数2,即二进制,但有人要问了,3也是周围的整数,为什么不选3?通过画图我们得到三进制的效率实际上要高于二进制,前苏联曾就研究过三进制计算机,当时是用了平衡三进制,即-1 0 1,分别用负电压 不通电 正电压来表示,在语言意义上是真 假 未知,在一定意义上这样更接近人的思维方式,所以也有人猜测三进制可能会让AI进化出智慧,在当时三进制计算机性能也要强出同类二进制计算机不少,但由于一些政治因素放弃了研发,感兴趣的可以自行了解,这里不是今天的主题就不多说了。这时就可以回扣到最初的解释:二进制中的0可以用低电平表示,1可以用高电平表示。这才是使用二进制的真正原因。
  更多理论可以自行搜索信息熵,因为不是我的专业范畴所以在这里并不多提,防止误人子弟。
在这里插入图片描述

  好了,本期内容就到这里,若对本章内容有部分质疑也请私信联系我,如果内容对你有用的话还请关注我的微信公众号:ModCx,你们的支持就是我创作的最大动力,让我们下期再见!

在这里插入图片描述

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
隐藏
变装