📜  计算机科学101

📅  最后修改于: 2021-10-21 05:34:55             🧑  作者: Mango

在 CS 101 课程中经常听到“计算机世界中的一切都是 1 和 0”。让我们探索一下这个想法,它是构建您可以想象的最复杂技术的基础。

有一种叫做 ASCII 的东西——你可以谷歌一下。它只是分配给我们使用的大多数字符(即字母和标点符号)的数字。
好的,那又怎样?

如果将一堆 1 和 0 放在一起,则可以表示任何数字。有点像摩尔斯电码。如果您不知道摩尔斯电码是什么,请不要担心。这个想法是——在一组 1 和 0 与我们使用的正常数字之间存在映射。如果我们取 2 位,它会是这样的:

00 is 0
01 is 1
10 is 2
11 is 3 

用 3 位我们可以表示 8,用 4-16 位,用 32 位可以表示超过 42 亿个数字等等。

看电影黑客帝国。它将这个想法提升到了一个新的水平。

因此,如果一个位(单个 1 或 0 称为位)可以映射到一个数字,并且一个数字可以映射到一个字符(使用 ASCII)。我们现在可以仅使用 1 和 0 来表示曾经说过的任何句子(英语)。当然,这个序列是供计算机理解的。他们可能很笨,但相信我,他们很快就邪恶了。

让我们更进一步地了解这个想法。我们如何用 1 和 0 存储我们的音乐?
声音只是一种波。它可以用图形表示。不相信我?在此链接上实时查看它。

所以现在的问题是将这个图转换为 1 和 0。其实很简单。您将水平轴分成固定数量的部分——比如 100。现在对于每个部分,您注意垂直轴上的值。因此,对于水平轴上的 100 个零件,也许您会在垂直轴上得到类似的结果。

[54, 87, 32, 98, 132, 85, 31, 78, 235, 941, 
                   79, 23, 14, 412, 6, 34 .... 100 values] 

我们知道如何将十进制数转换为二进制数(即 1 和 0)。
繁荣!您现在可以存储音频。

提高标准。我们如何存储您最喜欢的电影?
一部电影有两个部分——音频和视频。我们已经看到了如何保存音频。视频是一堆图片一个接一个保存,然后播放速度非常快。有点像翻书。就这么简单。

所以退一步,我们需要以二进制形式保存一张图片。
让我们尝试对答案进行逆向工程。即我们将研究解决方案,然后尝试弄清楚我们是如何得到它的。

仔细查看您的笔记本电脑或手机或几乎任何数字屏幕。您将看到 3 种颜色的灯。红色、绿色和蓝色并排堆叠——有数千个。如果您有便宜的显示器,则更容易看到,因为这些灯在便宜的显示器中不太紧密。
所以这些灯以不同的强度点亮,并通过一点点称为干扰的物理魔法,它们会产生不同的颜色。是的,理解干扰要么是魔术,要么是物理课。你的选择。

所以现在我们有了一种颜色,就像一幅画一样,我们把一堆不同深浅的颜色放在一起得到一张图片。如果我们能够存储 3 种颜色灯(红、绿、蓝)的亮度,我们就可以存储一张图片。

现在轻松多了。假设每种颜色的亮度范围为 0 到 100。所以现在只需要几千个 3 个整数的三元组就可以在你的口袋里保存一张图片。猜猜这些数字被转换成什么,让愚蠢的计算机有意义……

1's and 0's