计算机革命/硬件/二进制
十进制 | 二进制 |
---|---|
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
8 | 1000 |
9 | 1001 |
10 | 1010 |
计算机使用二进制(或二进制系统)来存储数据。二进制系统只有两个可能的数字,0 和 1。为了理解二进制,我们将从每个人都熟悉的十进制(或十进制系统)开始。十进制系统有十个数字,从 0 到 9。大于 9 的数字通过改变数字在数字中的位置来表示。数字 10 在十位数上有一个 1,在个位数上有一个 0,被理解为 (1*10) + (0*1)。类似地,100 在百位数上有一个 1,与 (1*100) + (0*10) + (0*1) 相同。现在来看一个更复杂的数字:3,687。它与 (3*1000) + (6*100) + (8*10) + (7*1) 相同。3,687 也与 (3*10^3) + (6*10^2) + (8*10^1) + (7*10^0) 相同。符号 ^ 表示指数。这里有一个规律——随着数字的增加,该数字乘以基数的递增幂(在本例中为 10)。第一个数字乘以 10^0,第二个乘以 10^1,依此类推。那么二进制呢?如何用两个数字来表示一个数字呢?当然,数字 1 就是 1,但是数字 10 是 2,100 是 8,依此类推。由于计算机科学家经常混合使用数字系统,因此在二进制数前面添加前缀 0b。3687 在二进制中是 0b111001100111,这与 (1*2^11) + (1*2^10) + (1*2^9) + (0*2^8) + (0*2^7) + (1*2^6) + (1*2^5) + (0*2^4) + (0*2^3) + (1*2^2) + (1*2^1) + (1*2^0) 相同。那么什么是位和字节呢?位是 binary digit 的简称。一个位的内存可以存储一个二进制数字。字节是 8 个位的集合。8 位的字节可以方便地存储一个字符。8 位有 256 种可能的组合。
一个千字节(KB)等于 1024 字节。千字节是 1024 而不是 1,000 的原因是它更易于适应二进制(它是 2^10)。一个兆字节(MB)等于 1024 千字节,也就是 1048576 字节。1 MB 大约相当于 500 页纯文本。一个吉字节(GB)大约等于 10 亿字节。一个太字节(TB)等于 1 万亿字节。1 TB 大约相当于 5 亿页文本。一个拍字节(PB)等于 1 千万亿字节。最常用的数量级是艾字节(EB),大约等于 100 万亿字节。
几乎所有计算机都使用二进制。该系统完美地适应了单个位的内存的两种状态:开表示 1,关表示 0。0 和 1 代表不同的信息,可以以多种不同的方式表示。将 0 和 1 转换为可理解的信息被称为数字数据表示。计算机只能读取以二进制形式给出的指令,这使得二进制成为计算机的自然语言。
二进制代码是计算机用于处理数据的语法。例如,计算机将 "HI" 理解为 0100100001001001。使用二进制代码,您可以编写文本数据,例如 ASCII、EBCDIC 和 Unicode。这些代码用于表示数据中可能出现的任何字符,例如数字、字母和特殊字符和符号,如美元符号、逗号、百分号以及许多数学字符。ASCII 和 EBCDIC 仅使用拉丁字母,并且仅限于英语,而 Unicode 能够用二进制代码表示每种语言。它每个字符包含 1 到 4 个字节,并且能够表示超过一百万个字符。Unicode 被大多数与网络相关的浏览器和浏览器中的应用程序使用。许多软件正在适应 Unicode,包括 Microsoft Windows、MAC OS、Microsoft Office,甚至现代编程语言,如 Java 和 Python。Unicode 针对未编码的新的语言不断更新和发展。使用 Unicode 最大的优势是它可以在全世界使用,并保持一致的结果。(Evans, A., Martin K. & Poatsy, M.(2008). 理解今天的计算机和未来的计算机。系统单元:处理和内存,第 2 章,第 54 页)
通过这种方式,软件程序也必须用 0 和 1 来表示。机器语言也是二进制代码的一种,它将指令转换为在计算机执行任何程序指令之前执行的指令。
计算机使用编码系统来表示数据(计算机语言)。如今,大多数计算机被认为是二进制计算机(数字计算机),它们只识别两种状态:开和关,分别用数字 0 和 1 表示。输入到计算机的信息被转换为计算机形式,然后以我们可以理解的形式处理并反馈给用户。0 和 1 被认为是位,这是计算机可以识别的最小数据单位。与位类似,还有许多不同的数据单位,这些单位是将位组合起来形成的,例如:字节、千字节、兆字节、吉字节和太字节(还有更多)。计算机使用二进制计数系统来表示数字和数学问题,只使用 0 和 1,类似于人类使用的十进制计数系统。一些用于基于文本的数据的编码系统是 ASCII、EBCDIC 和 Unicode。ASCII 和 EBCDIC 主要用于使用固定位集进行编码的个人计算机。Unicode 是另一种基于文本的编码系统,它可以用于任何语言,不像 ASCII 和 EBCDIC,这就是 Unicode 快速取代 ASCII 和 EBCDIC 的原因。与数字和基于文本的数据类似,图形、音频和视频也以二进制系统表示。