什么是二进制,为什么计算机使用它?

计算机不像人类那样理解单词或数字。现代软件允许最终用户忽略这一点,但在计算机的最低级别上,一切都由二进制电信号表示,该电信号以两种状态之一注册:开或关。为了理解复杂的数据,你的计算机必须用二进制编码。...

什么是二进制,为什么计算机使用它?

计算机不像人类那样理解单词或数字。现代软件允许最终用户忽略这一点,但在计算机的最低级别上,一切都由二进制电信号表示,该电信号以两种状态之一注册:开或关。为了理解复杂的数据,你的计算机必须用二进制编码。

二进制是以2为基数的数字系统。以2为基数意味着只有两个数字1和0对应于计算机可以理解的开和关状态。你可能对十进制十分熟悉。十进制使用从0到9的10个数字,然后环绕形成两位数,每个数字的值是最后一个数字的10倍(1、10、100等)。二进制是相似的,每个数字的值是最后一个的两倍。

二进制计数

什么是二进制,为什么计算机使用它?

在二进制中,第一个数字等于十进制中的1。第二个数字值2,第三个数字值4,第四个数字值8,依此类推,每次翻倍。把这些加起来就是十进制数。所以,

1111 (in binary) = 8 + 4 + 2 + 1 = 15 (in decimal)

考虑到0,这就为四个二进制位提供了16个可能的值。移到8位,就有256个可能的值。这将占用更多的空间来表示,因为十进制中的四位数字表示10000个可能的值。似乎我们正在经历这些麻烦,重新发明我们的计数系统只是为了让它更笨重,但计算机对二进制的理解要比对十进制的理解好得多。当然,二进制文件占用了更多的空间,但我们受到了硬件的限制。对于一些事情,比如逻辑处理,二进制比十进制好。

还有另一个基本系统也用于编程:十六进制。虽然计算机不运行十六进制,但程序员在编写代码时用它以可读的格式表示二进制地址。这是因为十六进制的两位数字可以代表一个完整的字节,二进制的八位数字。十六进制与十进制一样使用0-9,也使用字母A到F来表示额外的六位数字。

那么为什么计算机使用二进制呢?

简而言之:硬件和物理定律。计算机中的每一个数字都是一个电信号,在计算机的早期,电信号很难精确地测量和控制。只有区分由负电荷表示的“开”状态和由正电荷表示的“关”状态才更有意义。对于那些不确定为什么“关”用正电荷来表示的人来说,这是因为电子带有负电荷更多的电子意味着带有负电荷的电流更多。

因此,早期的房间大小的计算机使用二进制来构建系统,尽管它们使用的是更旧、更笨重的硬件,但我们保持了相同的基本原则。现代计算机用所谓的晶体管进行二进制运算。下面是场效应晶体管(FET)的外形图:

什么是二进制,为什么计算机使用它?

本质上,它只允许电流从源流向漏极,如果有电流在门。这形成了一个二进制开关。**商可以**出这些小得难以置信的晶体管,一直到5纳米,或者大约两股DNA大小。这就是现代cpu的工作方式,甚至它们也会遇到区分开态和关态的问题(尽管这主要是由于它们不真实的分子大小,受制于量子力学的怪异)。

但为什么只有基数2?

所以你可能会想,“为什么只有0和1?你不能再加一个数字吗?虽然其中一些可以归结为传统的计算机**方式,但如果再加上一个数字,就意味着我们不仅要区分“关”和“开”,还要区分“开一点”和“开很多”这样的状态

这里的问题是,如果你想使用多个电压等级,你需要一种方法来轻松地用它们进行计算,而这方面的硬件作为二进制计算的替代品是不可行的。它确实存在;它被称为三值计算机,它从1950年代就已经存在了,但这几乎是它的发展停止的地方。三值逻辑比二值逻辑有效得多,但到目前为止,还没有人能有效地替代二值晶体管,或者至少,还没有人在与二值晶体管相同的微小尺度上开发它们。

我们不能使用三值逻辑的原因可以归结为晶体管在计算机中的堆叠方式,即所谓的“门”,以及它们是如何用来执行数学运算的。门接受两个输入,对它们执行一个操作,然后返回一个输出。

什么是二进制,为什么计算机使用它?

这给我们带来了一个很长的答案:二进制数学对于计算机来说比其他任何东西都容易。布尔逻辑很容易映射到二进制系统,用开和关表示真和假。计算机中的门操作布尔逻辑:它们接受两个输入并对它们执行一个操作,如and、OR、XOR等等。两个输入易于管理。如果你将每个可能输入的答案用图表表示,你会得到一个被称为真值表的东西:

什么是二进制,为什么计算机使用它?

在布尔逻辑上操作的二进制真值表对于每个基本操作将有四个可能的输出。但是由于三值门需要三个输入,一个三值真值表需要9个或更多。二元系统有16个可能的运算符(2^2^2),三元系统有19683个运算符(3^3^3)。缩放成为一个问题,因为虽然三元是更有效的,它也指数更复杂。

谁知道呢?在未来,当我们把二进制的极限降低到分子水平时,我们可以开始看到三元计算机成为一种东西。不过,就目前而言,世界将继续以二进制运行。

图片来源:spainter\u vfx/Shutterstock,Wikipedia,Wikipedia,Wikipedia,Wikipedia

  • 发表于 2021-04-04 09:44
  • 阅读 ( 283 )
  • 分类:互联网

你可能感兴趣的文章

硬盘大小解释:为什么1tb的实际空间只有931gb

... 二进制数解释 ...

  • 发布于 2021-03-19 04:23
  • 阅读 ( 333 )

htg解释道:cpu实际上是如何工作的?

...理将使您更好地理解现代系统。 从小处着手 计算机以二进制操作。他们只了解两种状态:开和关。为了进行二进制计算,他们使用所谓的晶体管。如果栅极上有电流,晶体管只允许源电流通过它流向漏极。本质上,这形成了...

  • 发布于 2021-04-04 08:36
  • 阅读 ( 138 )

兆位每秒(mbps)和mb(mb)的区别

... bit)? 它是我们在计算和通信中使用的基本信息单位。“二进制数字”一词被缩短成“位”一词。因此,我们在所有二进制数字计算中都使用位。这里的计算和通信是指数字的。是的,我们不是在说模拟!位可以有两个值之一,...

  • 发布于 2021-06-25 00:34
  • 阅读 ( 265 )

签署(signed)和未签名(unsigned)的区别

...式、2的补码形式和符号幅度形式方法可用于表示有符号二进制变量。无符号二进制变量没有前面的符号或符号,因此,这种二进制变量只有一种表示方法。明确表示法三种可能的表示方法中有一种是明确的。唯一可用的表示方...

  • 发布于 2021-07-10 14:27
  • 阅读 ( 259 )

什么是以10为基数的数字系统?(the base-10 number system?)

...的间距,而不是数字。 其他数字系统 基本计算是基于二进制或基数为2的数字系统,其中只有两个数字:0和1。程序员和数学家也使用base-16或十六进制,正如您可能猜到的,它有16个不同的数字符号。计算机也使用base-10来执...

  • 发布于 2021-09-12 14:32
  • 阅读 ( 633 )

二进制数的读写

当你学习大多数类型的计算机编程时,你会接触到二进制数的主题。二进制数系统在信息如何存储在计算机上起着重要作用,因为计算机只理解数字,特别是以2为基数的数字。二进制数系统是一种以2为基数的系统,它只使用数...

  • 发布于 2021-09-24 07:14
  • 阅读 ( 198 )

什么是二进制代码?(a binary code?)

二进制代码可以提供一种简化信息表示的方法。二进制代码中只有两位数字:1和0。典型的二进制代码将使用1和0的字符串来表示字母、数字或其他概念。例如,美国信息交...

  • 发布于 2021-12-09 13:34
  • 阅读 ( 194 )

什么是二进制文件?(a binary file?)

二进制文件是存储在计算机或相关媒体上的任何文件。所有计算机数据都以二进制形式存储,也就是说,它由1和0组成。仅具有文本信息的计算机文件比其他文件(例如,存...

  • 发布于 2021-12-09 13:35
  • 阅读 ( 336 )

什么是二进制搜索?(a binary search?)

...物品分类,并以某种有序的方式排列成一长排。通过使用二进制搜索,该个人可以快速找出特定对象在行中的位置。此搜索通过检查行中的中间项来完成,如果中间对象不是要搜索的项,则随后仅查找行中可以放置该项的一半中...

  • 发布于 2021-12-09 13:36
  • 阅读 ( 99 )

什么是文件大小?(a file size?)

...上占用的空间量。文件大小的最基本单位是字节,它是由二进制代码中的八位二进制数字组成的字符串。文件大小通常取决于文件类型;文本文档通常比图形文档或应用程序小。大文件表示以二进制形式存储的信息更多;计算机...

  • 发布于 2021-12-10 13:04
  • 阅读 ( 182 )