分享

「计算机基础」图文详解计算机二进制 1、0 实现的原理

 山峰云绕 2023-07-28 发布于贵州



在使用电脑进行办公时或通过网络发送图片时,很多人都不知道其背后的原理。或许有些计算机专业的学生略知一二告诉你,电脑把会把各种东西转化成了 0 和 1 的二进制,因为电脑只能读懂 0 和 1。那么,这种东西又是如何转化的呢?电脑自动转化吗?它得先读懂才能转化吧?

一、老师说

记得刚学计算机时,我就听老师说,电脑采用的是二进制计数。也就是说,在电脑的世界里,它只认识 1 和 0 。

那时虽然理解不了,但是也没有多问。理解不了是因为,键盘上明明有 3、4、5,你却说它只认识 1 和 0。没有多问是因为,老师说了就这么记。

慢慢随着年龄的增长爱上了这一行,就想深扎在这个行业,因此必须搞懂最基础的知识。

二、进制是什么

日常生活中常见的计数方式是十进制,十进制也就是逢十进一

拿我最喜欢国产产品人民币来举例:十个一块是十块,十张十块是一百,十张一百是一千。

但是在这世界上不是只有十进制,进制还有很多,比如:二十进制、九进制、六十四进制等,目前大约共有二十五种进制在使用。

那么,我们为什么会选择十进制呢?

话说那年连秦始皇都还没有出生,在古希腊有一个叫亚里士多德的老头,他做了一个解释:可能是因为人类只有十个手指头。因此,在清点猎物的时候,数到十后面就没有了。所以每当数完十个数,就走过去一个人。这就是逢十进一,一个人就代表十头猎物。

有人就会困惑,手指头数完了,还有脚指头呐!那时也没有皮鞋,冬天也一样数,根本不耽误。是的,玛雅文明采用的就是二十进制,人家就是数脚指头。玛雅人的二十进制,不是观察脚指头。他们是观察天体运行,以一圈是 360 度,一年 360 天,推导出来 20 是一个基本单位。因此,逢二十进一。

除此之外,巴比伦文明采用的是六十进制,逢六十进一。为什么是六十?因为他们以时间为基本单位,一个小时是六十分钟,一分钟是六十秒。

虽然十进制,最早由亚里士多德做了解释。但是,多劳不一定多得。十进制是我国发明的。证据就是在甲骨文中就有“十”、“百”、“千”、“万”等文字标记。

反正吧,说这么多,不管多少进制,它出现肯定是有场景支撑的,是有原因的。

现在你可以回看一下本篇文章的标题,计算机使用哪种进制?没错二进制,那么电脑为什么会采用二进制呢?这就是下面我们要探索的内容。

三、计算机为什么选二进制

3.1 二进制原理

首先我要告诉你计算机的俗称名叫:电脑,字体加大而且加粗红色标注了。也就是说想要在电脑里存东西,那得先通电。

电脑通过控制电路进行数据的存储和运算,计算机先驱们为了让电脑能存点东西,可谓是费尽心机。最后,他们研究出一种叫触发器的元件,一个触发器可以存储 1 位二进制代码。

寄存器的存储电路通常是由触发器构成的,因为一个触发器能存储 1 位二进制数,所以 n 个触发器就可以构成 n 位寄存器,可以将寄存器理解成多个触发器组成的暂存单元

上面这张图片看不懂太复杂的话,这里画一张简略图。

上图已经标示的很清楚了 i 是 input 的简称,表示输入;o 是 output 的简称,表示输出;s 代表 switch,表示开关;这里多说一句通电用 1 表示,断电用 0 表示。

上图中当我们给开关 s 通电时,i 通电 o 就有电,i 不通电 o 就没电。

上图中当我们给开关 s 断电时,o 最后状态是什么,它最后就保持住那个状态。

重点来了啊,上面这两个动图就是电路组合实现的原理图。因此如果我们想要存储个状态,那么就给 s 通电,然后改变 i 的值,于是 o 就跟着变了。这样就算是 s 断电,o 已经把状态记录下来了。

3.2 1 位寄存器

1 位的寄存器就实现了高电平或者低电平状态的存储。高电平我们称为 1,低电平用 0 表示。因此 1 位的寄存器可以存一个数,那就是 1 或 0,更完整的动图显示如下图。

1 位寄存器存储完整动图

四、编码是什么?

只存一个 1 或者 0 有什么用?其实用处真不大。但是举一反三,多存一些会不会有用呢?有句话叫做量变引起质变。

下面的图是一个 8 位的寄存器,也就是 8 个小寄存器组合起来了。

我们来计算一下,1 位可以存 1 个二进制数。可以存 1,或者是 0,有 2 种可能。那么,8 位就可以存储 8 个数。这 8 个数可以是 1 或 0 两种情况,组合起来就是 2×2×2×2×2×2×2×2=256 种情况:00000001、00000010、00000011…

我们把 1 位二进制,称为 1 bit(比特)。8 个比特我们叫 1 个 byte(字节)。因为 8 位寄存器比较普遍,当成一个单位,所以 1 byte = 8 bit 也就是一个字节有 256 种情况。不要小瞧这一个小小的 8 位寄存器,它也有很多不同的玩法。

  • 如果我们想用它表示数字的话,可以表示从 0 到 255。
  • 如果我们想用它表示带符号的数字,比如正数和负数。
  • 那么我们把第 1 位当做符号位,0 表示正数,1 表示负数,其他 7 位表示数值,那可以表示从 -127 到 +127。

其实上面采用符号位来表示正负数的方式,这就出现了编码的概念。通过编码,可以做更多的事情。

对于数字来说,0 到 9 就足够了。其他的数值,我们完全可以从这 10 个基本数字当中组合出来。我们的比特有限,还有更多的信息需要通过编码来表示。

六、字符的编码

你现在看到的这段字,计算机里是怎么存储的,你知道吗?就比如“IT”这两个字符。你可能说,存的就是两个字符呀!一个“I”,一个“T”,我键盘敲上去,ctrl+s 保存到我的 word 文件中。

我的读者朋友,计算机只认识 1 和 0,到什么时候也是这样。你屏幕上看到的都是假象,不是本质。对于字符的存储,也采用了编码的原理。

下面是其中一种,它叫ASCII字符编码。这套编码标准是60多年前发明的。

1 字节可以表示从 0 到 256,这里它就用了一半,将 0 到 127 表示了一系列字符。其实,大写字母 I,是第 73 号(二进制1001001),大写字母 T 是 84 号(二进制1010100)。

有了这个标准之后,当你在键盘上按下了 I,到了电脑里实际存的是 73(1001001)这个数。当你下次读取的时候,电脑看到是 73,怕你不明白,再转化为一个 “I” 形状的图形显示到屏幕上。其实,电脑根本不知道 “I” 是什么东西。电脑也不知为啥你要看一个图形。但是,作为一个电脑,它还是照做了。

对于英文语言来说,它们是 26 个字母的组合,因此这 128 个字符,已经完全可以满足日常的使用。它们甚至还能玩个花样。比如 7 号,它的字符是 beep。你要是 print 一下它的话,你的电脑会发出 “哔~” 的声音。

编码都是人为规定的,你有 ASCII 编码,我也可以有其他编码,这是计算机行业规范的事情。拿我们的汉字来说,它的情况就多了去了。因此,128 就承载不了,256 也不行啊。于是,我们常常听说,一个汉字占 2 个字节,也就是有 256×256=65536 种情况。这么多,就够用了。

用 1 和 0 通过编码构成文字,相信你理解了。那些个图片、音频、视频这些多媒体文件,它们又是怎么用 1 和 0 构成的呢?

七、文件的编码

其实图片、音视频这些多媒体文件,以及其他各种类型的源文件,它们的存储也都是编码。

比如一张图片你用肉眼看到的是视觉上的图片,但在计算机中它也是以数据符的形式存储的。下面我就以字符文本的方式,打开了一张图片(这种打开的方式不对)。

你表面上看,它存的是字符。其实这主要是为了能在屏幕上呈现。再往里深究,它存的依然是 1 和 0。那么,图片是怎么来编码呢?我们都知道,图片是由像素组成的。

我们可以按照一定的规则,将这些像素格子用数表示出来。

另外,颜色也是可以用数字编码的。

因此订一套规则就可以了,比如我上面打开的那张图,它一开始就指出这是一个 gif 格式的图片。后面的数据,可能就是有多少个像素,每一个都是什么颜色等类似的信息。

音频文件也是,音频何尝不能用数据来描述呢?

因此它也是编码,下面是我打开的一段音频文件。

我再打开一个 PPT 给大家看看。

其实也类似,看着像是乱码其实都是编码数据。还有视频等等等等基本原理也类似,区别就在于其编码方式等规则不同。

八卦一下

最后说一下八卦,现在也有学者将周易八卦和二进制联系起来。

到底是现代人强行解释,还是老祖先确实有科学的智慧,这个我不敢探讨。但是,有一点我确实很想说。那就是我们喜欢去解释一切。千百年来,我们的文化并不喜欢去搞细密的研究,比如科学领域里那些数字公式什么的。我们更推崇一种思想上的“道”,或者说是一种“以不变应万变”的解释。

如果你喜欢本文,就收藏和转发吧,感谢支持。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多