三元计算机:trit的第三个(未知)部分将用于什么?

时间:2015-12-13 23:15:16

标签: binary logic computer-science logical-operators boolean-logic

我对创建/设计(但很可能只是想象)三元计算机而不是二进制计算机的想法非常感兴趣。

如果我这样做,我会使用一个平衡的base-3系统,所以trit (trit是base-3 as bit to base-2)可以是-1, 0,或+1。使用trits存储数据比使用像我们今天的计算机上的数据存储数据那样紧凑大约36%,但是三元运算会复杂得多,因此无法确定使用三元计算的ALU是否比二进制更快或更慢。

但我离题了,这只是一些与问题并不完全相关的背景知识,但它是相关的。 :)

所以,trit的可能值:

-1是 off / false ,与二进制中的0相同。

0 未知。二进制没有等价物。

+1 on / true ,与二进制中的1相同。

我的问题是......在计算方面,0的重点是什么?例如,我在逻辑门上阅读了很多内容,我理解它们的工作原理以及它们如何协同工作来创建ALU。二进制AND门非常简单,并且与其他二进制逻辑门组合,它们可以组合使用以执行算术,例如创建Adder或执行加法的单元。

我甚至无法理解如何使用三元计算完成这项工作。未知(0)如何进入逻辑门并用于执行算术?天哪,我甚至无法理解三元AND门会输出什么以及如何使用它们。

例如,我假设三元计算机的AND门接受3个输入而不是2个。让我们调用输入A,B和C.

在二进制AND门中,A和B可以是0或1.有四种可能的组合,A和B可以输入到AND门中。这导致AND门只有四个可能的输出。如果A和B均为1,则AND门输出1.如果它是A和B的其他三种组合中的任何一种,则输出0.(AND门的可能结果考虑所有可能的A / B组合:0,0 ,0,1)

三元AND门将接收3个输入,对吗?因此,在三元AND门中,A,B和C可以是-1,0或1.这意味着A / B / C有27种可能的组合。我不会列出每种组合的可能结果,而是为你们添加它们。 :)

无论如何,只有一种组合,其中1将是输出,有7种组合,其中0将是输出(假设A,B和C都是0,AND门将输出0),并且有19种组合,其中-1将是输出。在二进制加法器中,如果门投掷1,它将被发送到另一个门进行评估,依此类推,直到添加完成为止。在三元...如果收到0,门会怎么做?

我知道这是很多阅读,所以我会尝试总结并列出以下主要问题:

如何在逻辑门中使用/处理平衡三元系统中的0值?

如果逻辑门输出0,并且门在ALU中用于执行算术(比方说例如加法),那么接收0的门将如何处理它?基本上,如何使用三元逻辑创建Adder?

最后,我是否正确假设在三元计算机逻辑门中接受3个输入而不是2个像二进制计算机,或者逻辑门仍然是二元的?

2 个答案:

答案 0 :(得分:1)

ALU设计的一个基本目标是对整数执行算术运算。首先是加法(减法),然后是乘法和除法。

在基础3中编写时,这些操作已明确定义。例如

+ |  0  1  2
------------
0 |  0  1  2
1 |  1  2 10
2 |  2 10 11

与二进制算法一样,on需要计算sum trit和carry。传播进位时,应用下表

+c|  0  1  2
------------
0 |  1  2 10
1 |  2 10 11
2 | 10 11 12

所以你确实需要两个三输入函数(两个trits in和一个进位),给出总和trit和进位。 (请注意,二进制ALU以相同的方式添加:两个位和一个进位,给出一个和一个进位。)

这是否可以从基本二元或三元门实现,将取决于技术。

逻辑谓词AND / OR没有理由被修改,应保持二进制。布尔算术仍为布尔值。

此外,如果您枚举两个三元参数的所有三元函数(即9个输入组合),您会发现其中的19683个。将其与16个二进制函数进行对比。这个烂摊子是难以管理的。 (甚至不要想到所有三元三元函数,7625597484987。)

答案 1 :(得分:0)

好的,所以我相信我可能已经找到了问题的答案。

所以,没有理由重新发明轮子,使用标准的二进制逻辑门可以在三元计算机上正常工作。

在二进制中,0为假,1为真,二进制数从右到左读取,每个数字后跟2的幂。例如,10010将是18(2 + 16)。这个数字系统是增量的,这意味着左边的数字越多,转换为十进制数字就越高,但是这个系统没有办法减少。所有这一切都是使用晶体管来完成的,这些晶体管只关心是否有电压流过它或者是否存在电压,从而确定是否有电压接通,并且该位为1,如果不是然后它关闭,该位为0。

在三元组中,不会有开/关。与二进制计算机中的标准晶体管不同,二进制计算机中的标准晶体管测试是否存在或不具有确定比特值的电压,用于三元计算机的晶体管将测试电压是负,正还是接地。 (-1为负电压,0为接地,+ 1为正电压)。

使用这个系统,十进制数字将以三进制形式写入,类似于十进制数字如何以二进制形式写入,但有一个例外:三元允许递减。以二进制数字为例,第一个数字从右边开始,数字与2 ^ 0相关,然后是2 ^ 1,依此类推。在二进制中,所有带有1&s的数字和它们的相关能力2然后加起来给你你的数字。

现在想象三元。从右到左,它将跟随3 ^ 0,3 ^ 1,3 ^ 2,依此类推。 然而,+1 trit表示数字相关的3的幂是正的,0 trit意味着数字被忽略,就像0在二进制中的相同,并且a - 1 trit意味着数字相关的3的幂是负的。这允许递增和递减。

以三元数字为例:(我将使用' - '而不是' -1',' +'代表' + 1':+ -0 + -

这将是,从左到右阅读,( - 1)+(3)+( - 27)+(81)= 56

虽然三元和二元逻辑门是兼容的,但ALU必须以非常的方式设计。基本上就是这样。 :)