揭秘二进制:0和1如何构建数字世界的画面与声音

揭秘二进制:0和1如何构建数字世界的画面与声音
揭秘二进制:0和1如何构建数字世界的画面与声音

我们日常使用的是十进制,拥有0到9共十个数字,数到9后向前进位变成10。而计算机使用的二进制规则与之类似,只是它仅包含0和1两个数字。当二进制数到1时,由于没有新的数字可用,只能向前进位,即01之后是10。简单来说,逢十进一是十进制,逢二进一则是二进制。

`` 是摘要与正文的分隔标记,请保留。

为什么计算机选择二进制?

计算机之所以使用二进制而非人类熟悉的十进制,根本原因在于其底层硬件——电子电路的工作特性。

芯片中的晶体管如同开关,能够控制电流,产生高、低两种电平状态。我们将低电平记作0,高电平记作1。这里的高和低并不要求电压精确到某个特定数值,只要落在规定的范围内,电路就能准确判断其代表0还是1。即使电压存在微小波动,也不容易出错。

相比之下,如果使用十档电压分别代表0到9,在相同的电压范围内,每一档之间的间距会更小,从而更容易受到干扰。因此,区分两种状态比区分十种状态更容易、更可靠。对于更大的数字,只需将多个0和1组合起来即可表示。

二进制硬件优势:双态稳定性

大量晶体管可以组成逻辑门,逻辑门进一步构成加法器、寄存器、内存和CPU。计算机正是通过这些电路对0和1进行存储、判断和运算。

比特、字节与数据单位

在二进制中,每一个0或1被称为一个比特(bit)。8个比特组成一个字节(byte)。

一个字节包含8个位置,每个位置可以是0或1,因此总共能组成 $2^8 = 256$ 种不同的状态。我们常见的文件大小、内存容量和硬盘容量,都是基于字节计算出来的。

从0和1到文字:编码的作用

既然计算机只认识0和1,它是如何显示文字的呢?答案是编码

人们预先制定了一套规则,为每个字符分配一个数字,再将该数字转换为二进制保存。例如,大写字母“A”在ASCII编码中的十进制编号是65,转换为8位二进制即为 01000001。计算机保存的是这串二进制数据,软件读取后,根据字符编码规则将其解释为字母“A”。

文本编码:从字符到二进制

中文的处理原理相同,只是使用的编码规则更为复杂,常见的有Unicode和UTF-8。如果在保存和读取文件时使用了不同的编码规则,就可能出现乱码。

数字与字符的区别

很多人疑惑:如果计算机只认识0和1,那么在一个既包含数字65又包含字母A的文本文件中,计算机如何区分哪个是数字,哪个是字母?

答案很简单:文本文件中没有“数字”这个概念,只有“字符”

例如,文件中写着“65A”,计算机实际保存的是三个字符:“6”、“5”和“A”。其中,“6”和“5”各自拥有独立的ASCII编码,“A”也有自己的编码。计算机只是将这些字符原封不动地存储起来。

真正把“6”和“5”变成数字65的,并不是文件本身,而是程序。例如Excel、Python或Java等程序,会根据上下文判断此处需要的是数字,于是将字符“65”解析为整数65;如果此处仅需显示文本,它们就仍然只是字符“65”。

因此,计算机存储的是数据,数据本身没有意义,真正赋予它意义的是程序如何解释它。

图像的本质:像素与RGB

图像的保存和显示原理与文字类似。计算机并不会保存一张“真正的图片”,它保存的依然只是一串0和1。之所以这串数据能变成图片,是因为计算机和图片软件提前约定了一套规则:这串数据不是文字,而是图片,软件会按照图片规则进行解析。

像素与颜色

一张图片并非整体,而是由无数个极小的方块组成,这些方块称为像素。计算机保存图片时,并非存入整张图,而是记录每个像素的信息,如第一个像素的颜色、第二个像素的颜色,直至最后一个。

为了表示颜色,计算机通常使用红(R)、绿(G)、蓝(B)三个数值,即RGB。这三个数值组合起来,可以表示几乎所有颜色。随后,这些数值被转换为二进制保存。

图像本质:像素与RGB

分辨率与文件大小

除了颜色,计算机还需知道图片的宽和高。例如,一张1920x1080的图片表示共有1920列、1080行像素,总计约207万个像素。

软件知道宽和高后,便能按照从左到右、从上到下的顺序,将像素放回正确位置。当图片软件打开文件时,先读取宽和高,再依次读取每个像素的颜色,重新绘制到屏幕上。所有像素画完后,用户看到的便是完整的图片。

因此,图片分辨率越高,像素越多,需要记录的信息也就越多,文件通常也会越大。

声音与视频:采样与压缩

声音通过采样变成数字。计算机在极短的时间间隔内不断测量声音波形的强弱,将每次测量结果记录为数字,再转换为二进制。

视频可以简单理解为连续播放的图片加上声音。为了减小文件体积,图片、音频和视频通常还会经过压缩,但压缩后保存的结果仍然是二进制。

程序也是二进制

我们编写的C、Java或Python代码是给人看的。经过编译器、解释器和运行环境处理后,最终会变成CPU能够执行的机器指令,而这些机器指令同样以二进制形式保存。

结语:数据与规则

说“计算机只认识0和1”是一种简化说法。更准确地说,计算机的电路能够处理两种稳定状态,而人们通过不同的编码规则,赋予这些0和1不同的含义。

同一串二进制数据:

  • 按照字符编码读取,可能是一段文字;
  • 按照图片格式读取,可能是一组像素;
  • 按照机器指令读取,也可能是一段程序。

真正决定数据含义的,不只是0和1本身,还有解释它的规则。

数据的多义性:规则决定含义