位和字节的工作原理



随机彩色二进制数! 马特杰莫/盖蒂图片社
如果您使用计算机超过五分钟,那么您已经听到了以下单词 位 和 字节.双 公羊 和 硬盘 容量以字节为单位,在文件查看器中检查文件大小时也是如此。
您可能会听到一则广告,上面写着:“此计算机具有 32 位 奔腾处理器与 64 兆 字节 内存和 2.1 千兆字节 许多 HowStuffWorks 文章都谈到了字节(例如, 光盘的工作原理).在本文中,我们将讨论位和字节,以便您有一个完整的理解。
十进制数
理解位的最简单方法是将它们与您知道的东西进行比较: 数字.数字是可以容纳 0 到 9 之间的数值的单个位置。数字通常分组组合在一起以创建更大的数字。例如,6,357 有四位数字。据了解,在数字6357中,7填补了“1s位”,而5号填补了10s位,3填补了100s位,6填补了1000s位。因此,如果您想明确,您可以通过这种方式表达事物:
(6 * 1000) + (3 * 100) + (5 * 10) + (7 * 1) = 6000 + 300 + 50 + 7 = 6357
另一种表达方式是使用 10的幂.假设我们要用“^”符号来表示“提高到幂”的概念(所以“10平方”写成“10^2”),另一种表达方式是这样的:
(6 * 10^3) + (3 * 10^2) + (5 * 10^1) + (7 * 10^0) = 6000 + 300 + 50 + 7 = 6357
从这个表达式中可以看出,每个数字都是一个 占 位 符 对于下一个更高的 10 次幂,从第一个数字开始,10 的幂增加到零的幂。
这应该感觉很舒服 - 我们每天都使用十进制数字。数字系统的巧妙之处在于,没有什么可以强迫您在一个数字中有 10 个不同的值。我们 基数-10 数字系统可能是因为我们有 10 个手指而长大的,但如果我们碰巧进化到有 8 个手指,我们可能会有一个以 8 为基数的数字系统。你可以有基数系统。事实上,在不同情况下使用不同的基础有很多很好的理由。
计算机碰巧使用以 2 为基数的数字系统运行,也称为 二进制数系统 (就像以 10 为基数的数字系统称为十进制数字系统一样)。在下一节中了解其工作原因和工作原理。
Base-2 系统和 8 位字节
计算机使用base-2系统的原因是因为它使使用当前的电子技术实现它们变得更加容易。你可以连接并制造以10为基数运行的计算机,但它们现在非常昂贵。另一方面,base-2 计算机相对便宜。
所以计算机使用二进制数,因此使用 二进制数字 代替十进制数字。这个词 位 是单词“二进制digIT”的缩写。 十进制数字有 10 个可能的值,范围从 0 到 9,而位只有两个可能的值:0 和 1。因此,二进制数仅由 0 和 1 组成,如下所示:1011。你如何计算二进制数 1011 的值是多少?您的操作方式与上面对 6357 的操作相同,但您使用以 2 为基数而不是以 10 为基数。所以:
(1 * 2^3) + (0 * 2^2) + (1 * 2^1) + (1 * 2^0) = 8 + 0 + 2 + 1 = 11
您可以看到,在二进制数中,每个位都保存 2 的幂递增值。这使得二进制计数变得非常容易。从零开始到 20,以十进制和二进制计数如下所示:
0 = 0
1 = 1
2 = 10
3 = 11
4 = 100
5 = 101
6 = 110
7 = 111
8 = 1000
9 = 1001
10 = 1010
11 = 1011
12 = 1100
13 = 1101
14 = 1110
15 = 1111
16 = 10000
17 = 10001
18 = 10010
19 = 10011
20 = 10100
查看此序列时,十进制和二进制数系统的 0 和 1 是相同的。在数字2处,你看到携带首先发生在二进制系统中。如果某个位为 1,并且您向其添加 1,则该位变为 0,下一个位变为 1。在从 15 到 16 的过渡中,此效果滚动 4 位,将 1111 变为 10000。
比特在计算机中很少单独出现。它们几乎总是捆绑在一起到 8 位集合中,这些集合称为 字节.为什么一个字节有 8 位?一个类似的问题是,“为什么一打鸡蛋中有12个? 8位字节是人们在过去50年中通过反复试验确定的东西。
一个字节中有 8 位,您可以表示 256 个值,范围从 0 到 255,如下所示:
0 = 00000000
1 = 00000001
2 = 00000010
...
254 = 11111110
255 = 11111111
在文章中 光盘的工作原理,您将了解到 CD 每个样本使用 2 个字节或 16 位。这为每个样本提供了从 0 到 65,535 的范围,如下所示:
0 = 00000000000000000
1 = 0000000000000001
2 = 0000000000000010
...
65534 = 1111111111111110
65535 = 1111111111111111
接下来,我们将研究字节的使用方式。
标准 ASCII 字符集
字节经常用于保存文本文档中的单个字符。在 ASCII 字符集,则 0 到 127 之间的每个二进制值都被赋予一个特定的字符。大多数计算机扩展 ASCII 字符集以使用字节中可用的 256 个字符的全部范围。上面的 128 个字符处理特殊内容,例如常见外语中的重音字符。
您可以在下面看到 127 个标准 ASCII 代码。计算机存储文本文档,两者都在 磁盘 和在 记忆,使用这些代码。例如,如果在 Windows 95/98 中使用记事本创建一个包含“四分七年前”字样的文本文件,则记事本将为每个字符使用 1 个字节的内存(包括单词之间的每个空格字符 - ASCII 字符 32 的 1 个字节)。当记事本将句子存储在磁盘上的文件中时,该文件还将包含每个字符和每个空格 1 个字节。
试试这个实验:在记事本中打开一个新文件,并在其中插入句子“四分七年前”。将文件以名称保存到磁盘 盖蒂.txt.然后使用资源管理器并查看文件的大小。您会发现该文件在磁盘上的大小为 30 字节:每个字符 1 个字节。如果在句子末尾添加另一个单词并重新保存,文件大小将跳转到适当的字节数。每个字符消耗一个字节。
如果你像计算机一样查看文件,你会发现每个字节包含的不是字母,而是一个数字——数字是对应于字符的 ASCII 代码(见下文)。因此,在磁盘上,文件的数字如下所示:
F o you are a n d s e v e n
70 111 117 114 32 97 110 100 32 115 101 118 101 110
通过查看 ASCII 表,您可以看到每个字符与使用的 ASCII 代码之间的一对一对应关系。请注意,空格使用 32 -- 32 是空格的 ASCII 代码。如果我们想在技术上正确,我们可以将这些十进制数扩展到二进制数(所以 32 = 00100000) - 这就是计算机真正处理事物的方式。
前 32 个值(0 到 31)是回车符和换行符等代码。空格字符是第 33 个值,后跟标点符号、数字、大写字符和小写字符。要查看所有 127 个值,请查看 Unicode.org的图表.
接下来我们将学习字节前缀和二进制数学。
字节前缀和二进制数学
当你开始谈论很多字节时,你就会进入 前缀 如千、兆和千兆,如千字节、兆字节和千兆字节(也缩写为 K、M 和 G,如千字节、兆字节和千兆字节或 KB、MB 和 GB)。下表显示了 二元的 乘数:
基洛 (K)
2^10 = 1,024
兆丰 (M)
2^20 = 1,048,576
千兆 (G)
2^30 = 1,073,741,824
泰拉 (T)
2^40 = 1,099,511,627,776
佩塔 (P)
2^50 = 1,125,899,906,842,624
Exa (E)
2^60 = 1,152,921,504,606,846,976
泽塔(Z)
2^70 = 1,180,591,620,717,411,303,424
约塔 (Y)
2^80 = 1,208,925,819,614,629,174,706,176
你可以在这张图表中看到,公斤大约是一千,兆是大约一百万,千兆大约是十亿,依此类推。因此,当有人说“这台计算机有一个 2 GB 的硬盘驱动器”时,他或她的意思是硬盘驱动器存储 2 千兆字节,或大约 20 亿字节,或正好是 2,147,483,648 字节。你怎么可能需要 2 GB 的空间?当你考虑那个 光盘 可容纳 650 兆字节,您可以看到只需三张 CD 的数据就可以填满整个东西!如今,TB级数据库相当普遍,并且可能有一些PB级数据库漂浮在周围。 五角大楼 到现在为止。
二进制数学的工作方式与十进制数学类似,只是每个位的值只能 0 或 1.为了了解二进制数学,让我们从十进制加法开始,看看它是如何工作的。假设我们要添加 452 和 751:
452
+ 751
---
1203
要将这两个数字相加,请从右侧开始:2 + 1 = 3。没关系。接下来,5 + 5 = 10,因此您保存零并将 1 带到下一个位置。接下来,4 + 7 + 1(因为进位)= 12,所以你保存 2 并携带 1。最后,0 + 0 + 1 = 1。所以答案是1203。
二进制加法的工作方式完全相同:
010
+ 111
---
1001
从右侧开始,第一个数字为 0 + 1 = 1。没有携带那里。第二个数字有 1 + 1 = 10,所以保存 0 并携带 1。对于第三个数字,0 + 1 + 1 = 10,因此保存零并携带 1。对于最后一个数字,0 + 0 + 1 = 1。所以答案是1001。如果你把所有的东西都翻译成十进制,你可以看到它是正确的:2 + 7 = 9。
若要了解如何使用门实现布尔加法,请参阅 布尔逻辑的工作原理.
总而言之,以下是我们对位和字节的了解:
位是二进制数字。位可以保存值 0 或 1。
每个字节由 8 位组成。
二进制数学的工作方式与十进制数学类似,但每个位的值只能为 0 或 1。
真的没有什么比这更简单了——比特和字节就是这么简单。
责任编辑:David
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。