有位替代品吗?


42

有没有替代比特的最小数据单位?是不是仅是0或1,而是实际上介于两者之间的许多可能状态?这样存放花车不是更自然吗?


8
您需要无穷多个状态才能存储任意浮点数,因此这是不切实际的。
克里斯·弗雷德

2
@ChrisF:可以用有限的位数表示无限个浮点数吗?
用户未知

11
@userunknown-不,你不能。这就是为什么浮点运算容易出错的原因。我是给说的是,有更多的国家实际上没有解决任何问题。
克里斯·弗雷德


5
不可能唯一地表示无限数量的不同浮点数。您将需要存储无限量的信息来唯一地标识单个不定式,这在有限的空间中是不可能完成的,因为物理学。给定体积中超过一定量的信息存储需要一定的密度,以使内容在有限的时间内会被重力压碎至MAX_DENSITY,即使它们可以以MAX_SPEED的速度行进(也称为“光速”):黑色洞。有关CompSci的含义,请参见en.wikipedia.org/wiki/Bekenstein_bound

Answers:


59

当然在理论上和实践上都是可能的。

从理论上讲,有两种选择:基数不是2的数字系统(实际上,我们知道的十进制就是这样一种系统);和非数字号码系统。从数学上讲,我们正在谈论离散域与连续域。

实际上,已经探讨了两种选择。一些早期的数字计算机(例如ENIAC)采用十进制编码,而不是现在普遍使用的二进制编码。其他基础(例如三元)应同样可行(或不可行)。神秘的编程语言Malbolge基于理论上的三元计算机。尽管大部分都是讽刺性的,但没有技术原因不起作用。连续域存储和处理历来是在模拟计算机上完成的,您可以在其中将数量编码为振荡信号的频率和/或幅度,然后通过对这些信号应用各种调制来执行计算。今天,量子计算使连续存储单元背后的理论再次引起人们的兴趣。

无论哪种方式,该位都是理论上最小的信息单位,因为任何其他选择都可以编码比单个“是/否”更多的信息,而且还没有人提出一个更小的理论单位(我不希望发生这种情况)很快)。


17
@Dokkat:连续域存储,例如模拟磁带,从理论上讲是很好的,但是在实践中,它遭受着无法恢复的噪声和降级的困扰,这就是我们首先使用数字计算机的原因之一。
tdammers

19
在信息论中,传达少于1位的信息是很有可能的。基本思想是,如果两种状态的可能性相同,则一位数据仅保留一位信息。根据该定义,在撒哈拉沙漠中,“今天下雨了吗?”的答案为“否”。携带的信息少于1位,因为这几乎总是答案。
Michael Borgwardt 2012年

9
@Dokkat过去常常用于模拟复杂的模拟量,“数字”计算机是模拟计算机的控制系统。在实践中,要构建具有以下分辨率的模拟电路很困难double
Martin Beckett

5
Some of the early digital computers employed decimal encodings rather than the now ubiquitous binary encoding-实际上,十进制编码至今仍在使用;它称为BCD。大多数计算机中的BIOS都使用它(用于基于十进制的日期),以及大多数cheapo-calculators,因为用BCD进行所有操作所需的电路(即便宜)要比用二进制执行并拥有一个BIOS 所需的电路少二进制到十进制转换器。
BlueRaja-Danny Pflughoeft 2012年

3
正如@tdammers所说,使用模拟信号甚至很难匹配单精度浮点数。32位浮点数实际上具有24位精度;具有可比噪声的模拟电路价格昂贵,耗电,速度慢并且对其环境非常敏感。
即将来临的风暴,2012年

26

您基本上是在描述模拟信号,该信号用于传感器,但很少用于内部计算。问题是噪声降低了质量,您需要对很难通信的参考点进行非常精确的校准,并且传输成为问题,因为它在走得更远时会失去强度。

如果您对探索模拟计算感兴趣,那么大多数本科生的“电子学入门”课程都可以帮助您构建运算放大器积分器。即使没有正式的指导,它们也很容易构建。

您还可以在同一节点上存储多个数字状态。例如,您可以在两者之间添加第三个状态,而不是将0-2.5伏特设为零并将2.5-5.0伏特设为1。但是,它增加了很多复杂性,并显着增加了您对噪声的敏感性。


模拟计算曾经很普遍,但最终数字可以更精确。与尝试将噪声降低到低几个dB(3位〜20 dB)相比,在内存中使用更多的几位来表示一个值是微不足道的,并且在某些时候(根据速度而变化)在物理上是不可能的。
尼克T

我喜欢这里对模拟计算和示例的强调。来自严格的数字计算机科学背景,我并不总是看到什么是模拟计算。尽管对此进行谷歌搜索将给出许多示例。我想我记得曾看到棱镜“计算”傅立叶变换,因为它将入射光分成其组成频率。它以0的能量(在计算FT的要求的意义上)非常快地完成了此任务。当然要对结果进行处理可能需要数字化。
保罗

在他的书,最终它是二进制电路相比,模拟等效成本更低@NickT维纳,在其控制论和早期玩家的作者/控制理论界回忆说,造成实验室,研究人员和行业选择二进制
克里斯托夫

20

这些被称为量子位,并在量子计算机中使用。您可以在Wikipedia 条目中找到有关它们的更多信息。为了使这种计算机稳定并且在经济上可行,正在进行研究。


1
这使我的头部在阅读
该书时感到头疼

我不确定qubit的工作原理(我正在阅读,以便稍后进行更新),但是我知道qubit对于当前技术是不切实际的,而该概念并非如此。例如,一个人可以用填充玻璃杯的水量来实际表示“浮动”钻头,然后使用天平对其进行测量。
多卡特(Dokkat)2012年

11
细化:量子位不会保持0到1 之间的状态。它仍然是0或1,但是它可以同时具有多个状态 。(就像薛定
inger

7
@Ryathal这实际上是一个好兆头:“任何不被量子理论震惊的人都不了解它。” -Niels Bohr
Dan Neely 2012年

1
由于某些原因,我总是将量子位描绘成淡蓝色或粉红色的Tribbles。
韦恩·维尔纳

17

准确性问题

我们使用位的原因之一是它有助于我们准确地存储和检索信息。

现实世界是模拟的,因此所有传递或存储的信息计算机最终都是模拟的。例如,导线上特定电压的电流,或磁盘上特定强度的磁性电荷,或激光光盘上特定深度的凹坑。

问题是:您如何准确地测量模拟信息?想象一下,电线上的电流可以解释为任何十进制数字,如下所示:

  • 1至10伏:0
  • 10至20伏:1
  • 20至30伏:2

等等,这个系统可以让我们在几个电流脉冲中传递大量数据,对吗?但是有一个问题:我们必须非常确定电压是多少。如果温度,磁铁,宇宙射线或其他原因引起某种波动,我们可能会读取错误的数字。而且,我们打算衡量的越精细,风险就越大。想象一下,如果1毫伏的差异很大!

相反,我们通常使用数字解释。超过某个阈值的所有内容都是正确的,而低于阈值的所有内容都是错误的。因此,我们可以问诸如“是否有电流?”之类的问题。而不是“ 究竟有多大的电流呢?”

可以放心地测量每个位,因为我们只需要“处于正确的位置”即可。并且通过使用很多位,我们仍然可以获得很多信息。


1
公平地讲,数字电路必须定义可确定的值,该值肯定为真或为假,而中间状态则为“未定义”。在3.3 / 5V逻辑中,可能<0.8V为假,> 2.5V为真。如果使信号超出这些范围,噪声当然仍然是一个问题。例如,根据某些因素,尝试使用NPN晶体管将信号下拉至低电平只会使您降至0.55至0.7V。没什么可玩的。当您定义更多定义的范围时,只会使难度增加。
Scott Whitlock,2012年

2
@ScottWhitlock这些只是规范;除非该引脚设计为接受HiZ等,否则它将把输入解释为1或0,并且该点可以根据温度,制造批次,电源电压等而变化。未定义区域不是功能(您似乎建议您可以将其用于模糊逻辑)。
尼克T

1
@NickT:未定义的区域表示存在严重的失真(失真严重到无法正常错误纠正的程度),因此有必要重新传输。
Lie Ryan

2
@LieRyan,您正在考虑的级别比此类规范处理的级别(物理层)高得多。未定义区域仅表示行为(如何读取位)未定义且无法保证。它仍然可以正常工作。
Nick T


3

对我们来说,这可能更自然,但出于某些特定原因,为什么选择二进制作为数字电路,从而选择编程语言。如果您有两种状态,则只需区分两个伏特设置,例如0V和5V。对于基数(基数)的每增加一次,您都需要进一步划分该范围,从而获得彼此不明确的值。您可以增加电压范围,但这具有熔化电路的讨厌习惯。

如果您想从数字电路中更改硬件类型,则可以选择更多的选项。由于齿轮比电子电荷具有更高的耐热性和独特性,因此在机械计算机中通常使用小数。如其他地方所述,量子计算机还有其他处理事物的方式。光学计算机也许也可以做我们以前未曾处理过的事情,磁性计算机也是可能的。


2

我认为您现在可以构建可以容纳任何状态甚至使用模拟数据的项目。尽管构建一个完整的系统并运行所有逻辑组件以获取功能齐全且可编程的体系结构,对于任何一家公司来承担这项任务来说都是一项艰巨的工作,并且存在财务风险。

我认为ENIAC是最后一种使用十位环形计数器存储数字的体系结构。尽管对此我可能是错的,但不确定,但是这对机器的其他部分有多大影响。


2

可以将存储视为对未来的传输,适用于连续(模拟)媒体的所有传输问题。

存储这些状态可能是微不足道的(三向开关或某种网格),而物理存储这些状态是许多答案所涵盖的一个问题,比我能做到的要好得多。

我主要关心的是如何对这种存储状态进行编码,并且似乎很有可能认为此任务是愚蠢的事情,因为根据您需要的精度,位足以表示实际的连续数据,因此请继续添加更多位。

真正的连续数据不可能以这种方式存储,但是可以通过方程式进行计算,例如

1/3

可以存储。


2

一个线索暗示是小件的比比特的信息。通常需要一些线索来确定位的确定值。扭曲更严重:无论您累加多少,您仍然无法确定结果位的值。

更严重的是,在多值逻辑中,基本单位可以具有n个状态之一,其中n>2。您可以考虑这些单位携带的信息要比前一段意义的要少,但这是从信息理论出发的从观点来看,您必须说它们携带更多。例如,您需要两个位来表示四值逻辑中的单个值可以携带的相同数量的信息。


1

最佳数值基是e,但是由于在数字电子设备中表示数字的最简单方法是处于两种状态(高电压= 1,低电压= 0),因此选择了二进制数表示形式。


谈到e不提的还有在NAT?耻辱。
Ben Voigt

1
@BenVoigt是吗?什么是nat?:)谷歌告诉我一些奇怪的事情,这些事情不太适合这个主题。
2012年

@BenVoigt也许您是指Nat(信息)nat ...是信息或熵的对数单位,它基于自然对数和e的幂,而不是定义该位的2和以2为底的对数的幂。
CVn

@MichaelKjörling:就是这样。
Ben Voigt 2012年

0

可能的数据单位较小。我不知道它的正式名字,我们称它为联合国。

位是“二进制digIT”的智能组合词,表示它具有两种可能的状态。因此,必须有一种只有单个可能状态的数字。

让我们看看这意味着什么。这意味着您只能使用零。

你怎么算?在任何基于x的系统中,您都将增加该值,直到数字用完为止,然后添加一个数字以形成一个数字。如果只有一位,则会立即用完数字,因此:

零= 0一= 00二= 000等

这绝对是更自然的:更多就是更多!它完美地映射到任何离散数量的事物。多少土豆?00000那是四个土豆。等一下……那是一个接一个的。如果您不喜欢,可以将0的值重新定义为1。那么这是很自然的:没有零是没有,一个零是一个,两个零是两个,等等。

但是,这对于固态计算机是不切实际的。数字必须物理放置和移除,并且缩放比例不佳。


1
但是,由于您实际上只是将0编码为“不存在”,而将1编码为0,因此这实际上并不是数据单位。它们仍然是位。
DeadMG '16

它不是二进制的,而是一元的。关键是数据元素只有一种状态,而不是两种。存在与否不是状态,元素的状态始终相同,因此是一进制数字。我基本上是在描述理货标记制度。
马丁·马特

-1

我找不到确切的英语参考资料,但据我从信息论课记得,该是信息的基本单位。一点信息就是您扔出一枚公平硬币后所收到的信息(每面50%的概率)。其他一切都可以简化为这个。

即使您使用具有多种状态的设备,也可以始终将其简化为位。


-1

如果您通过接近大自然的工作原理来定义自然,那么最自然的信息编码方式就是腺嘌呤,胞嘧啶,鸟嘌呤和胸腺嘧啶的DNA样组合。

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.