为什么计算机只使用0和1?


15

为什么计算机只使用0和1?其他数字(例如2或3)的增加不会加快计算机的速度吗?同样,2和3可以用来缩短整数的位长(2和3可以用来结束整数,因此数字1只需要一个两位。)。

为什么二进制计算机更受欢迎?




1
为了使它们在存在噪声的情况下稳固地进行预成型
电压峰值

Answers:


28

它不会加快速度。现在很容易:制作一个像NAND之类的基本逻辑门,逻辑输入将输出拉至Vdd或接地。如果要使用中间电平,则需要FET达到Vdd / 2或Vdd / 4之类的电平。这将消耗更多的功率,并且需要更准确地工作的组件,这将需要更多的时间才能稳定到最终水平。如果在单个数据单元中填充更多值,则所需的精度会增加,建立时间也会增加。现在使用的二进制系统只是将FET推至Vcc。

exscape提到了抗扰性,这就是精度的含义:信号可能偏离标称值多少。在1.2 V处理器中可能接近50%或大于0.5 V的二进制系统中。如果使用4个不同的电平,它们之间的距离仅为300 mV,那么抗干扰性就不会好于150 mV(可能为100 mV)。

请注意,有些闪存设备使用多个级别在单个存储单元中存储多于1位的数据,这就是MLC(多级别单元)闪存。这不会提高速度,但是会在单个芯片上打包更多数据。


1
但是,抗干扰性不是主要原因之一吗?至少这可能是数字与模拟的主要原因。
2012年

@exscape-更新了我的答案。现在好点了?感谢您的反馈
stevenvh 2012年

为什么不加快速度?使用两位以上的数字,我们可以在较小的空间中存储数据,例如,四位二进制数= 100 –需要3个物理位置–三元四位= 11 –需要两个物理位置。因此,在三元系统中,处理器将不得不处理较少数量的寄存器,这将使其相对更快。
user31782

5

二进制级别的存储和计算非常便宜,小巧且快速。这段文字可能过于简单了,但我想它到了要点:

读取二进制存储单元仅由一个简单的比较器完成其工作:高/低。计算可以归结为非常简单的表,其中包括四个输入组合(00、01、10、11)到两个位输出(0和1)。

现在,如果您必须比较几个可能的值,则必须有一个比较复杂的比较器设置,该设置比简单的比较器要慢或要大得多。而且,计算表变大,因此计算也更加复杂。尽管我们可能会为节省存储空间而节省一些小面积,但其他所有方面(例如计算和传输)都将变得更加困难和缓慢。

正如在另一个答案中所讨论的那样,还必须以更精确的方式构建整个设置,以保持抗干扰能力。

所有这些东西加在一起就意味着:在芯片上放置数十亿个二进制门比仅十亿个四进制门更有效。


2

到处走走,或者如果您没有这些开关中的任何一个去五金店,请查看将开关置于断开状态的难易程度,添加第三种状态,现在尝试看看你是否不能做出杰出的职位。再举一个例子,拿一个可乐罐或啤酒瓶或其他圆柱形的物体放在侧面,然后在顶部平衡大理石,那么平衡大理石有多容易,快速和稳定?

使用晶体管作为开关非常容易,将其驱动至一条或另一条,易于检测输出。现在,如果要尝试不让所有晶体管都处于关闭状态,而是将其校准到不同的范围,则每个状态一个(除了所有打开和全部关闭之外,还建议您使用两个中间状态)。现在,整个系统必须更加准确,昂贵,容易出错和失败等。

基本上,这是尝试过的,一个或一些早期的计算机尝试为十进制(10个电压级别),但是失败了。无论是管式晶体管还是硅,将晶体管用作开关都非常容易,便宜,更快,更可靠,并且只有两种状态,下轨和上轨。


我的音乐系统上有一个音量旋钮,从1到10。选择精确的音量非常容易。每次使用时,我都会第一次正确。因此,按照您的逻辑,最好是使用十进制晶体管。
intrepidis

1
立体声上的许多旋钮都有两个灰度编码的二进制信号,状态变化指示方向的增加或减少(旋转编码器)。其他的则通过ADC将位置数字化为1和0进行模拟。一个非常老的或很纯粹的人可能不会进行数字化处理,而是将该分压器直接馈入模拟放大器。但是我怀疑大多数人不知道,通常你可以说出来。
old_timer

2

显然可以做到。这个星球上的所有†数字存储均为4状态。DNA将数据编码为每位四个碱基对之一,每个碱基对以3位的字节排列。因此,每个字节可以具有64个不同的状态。

 

†除了其中一种有情生命形式人工创造的无穷小分数。


@Dmit:是的,但是仍然有四种可能的组合。孤立地选择两条链中的一条,在每个位置A,G,C或T上有四个选择。确定另一条链的事实无关紧要。如果您说的是真的,那么每个“字节”只有8个选择,而实际上有64个选择,尽管不是所有这些代码都使用过,有些是多余的。有趣的是,线粒体和叶绿体从字节到氨基酸的编码与我们的核DNA不同。
奥林·拉斯洛普

@Dmit:换句话说,AT与TA不同,而CG与GC不同。
奥林·拉斯罗普

您说得对,对不起。
德米特里·格里戈里耶夫

0

众所周知,二进制数系统由0和1组成。其他流行或以前使用的数字系统是八进制,十六进制和十进制数字系统。二进制,八进制,十进制和十六进制分别具有2、8、10和16位数字。对于实现逻辑电路,二进制系统要稍微复杂一些。为什么?那是因为我们只能依靠两位数来构造电路。电路设计相对容易实现。在设计电路时使用二进制数系统耗时少,复杂度低,所需电路元件少,并且在各个方面都比其他方面更实惠。八进制和十六进制系统较早用于设计计算机。但是它们很复杂。电路也很复杂。因此,工程师开始使用Binary系统来获得前面提到的优点。


硬件未使用AFAIK,八进制和十六进制系统。它们曾经并且仍然(甚至是八进制)被软件使用,因为它们方便地将几个位打包到一个单元中。例如。八进制数字正好是三位,十六进制(十六进制数字)正好是四位。您宁愿说0b11111111还是0xff?
Oskar Skog's

0

为什么使用二进制而不是十进制

好问题。实际上,存在不使用二进制系统的计算机。这些由运算放大器构成的计算机称为ANALOG计算机。模拟计算机可以加,减,乘和除,甚至可以进行某些类型的积分。

为什么二进制计算机更受欢迎?

二进制计算机有时更准确。同样,二进制计算机(例如我的笔记本电脑)可能要复杂数百万倍。我猜。模拟计算机需要在某些有限的条件下运行,并给出有限的答案。您可以根据需要使数字计算机变得复杂。


-2

除了其他答案,我还为三元逻辑设计了本机数字电路。我认为存在一套完整的程序,其运行速度与二进制逻辑电路一样快(这意味着我们获得了1.5倍的性能嘘声)。但是它的成本很高。电路在空闲状态(不仅在切换时)会消耗能量,因此您要消耗大量热量,这对于现代CPU而言是不值得的。它在主巴士上几乎无法受益。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.