Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Binary 三元计算机:trit的第三部分(未知)将用于什么?_Binary_Logic_Computer Science_Logical Operators_Boolean Logic - Fatal编程技术网

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

Binary 三元计算机:trit的第三部分(未知)将用于什么?,binary,logic,computer-science,logical-operators,boolean-logic,Binary,Logic,Computer Science,Logical Operators,Boolean Logic,我对创建/设计(但很可能只是想象)三元计算机而不是二进制计算机的想法非常感兴趣 如果我要这样做,我会使用一个平衡的base-3系统,所以一个trit(trit是base-3,就像bit是base-2)可以是-1、0或+1。使用TRIT存储数据比我们在今天的计算机上使用位存储数据要紧凑约36%,但是三值运算要复杂得多,因此无法判断使用三值运算的ALU比二进制运算快还是慢 但我离题了,这只是一点背景材料,与问题不完全相关,但它是相关的。:) 因此,trit的可能值: -1为关闭/假,与二进制中的0相

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

如果我要这样做,我会使用一个平衡的base-3系统,所以一个trit(trit是base-3,就像bit是base-2)可以是-1、0或+1。使用TRIT存储数据比我们在今天的计算机上使用位存储数据要紧凑约36%,但是三值运算要复杂得多,因此无法判断使用三值运算的ALU比二进制运算快还是慢

但我离题了,这只是一点背景材料,与问题不完全相关,但它是相关的。:)

因此,trit的可能值:

-1为关闭/假,与二进制中的0相同

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

+1在/true上为,与二进制中的1相同

我的问题是…0在计算方面有什么意义?例如,我读了很多关于逻辑门的书,我了解它们是如何工作的,以及它们如何一起工作来创建ALU。二进制AND门非常简单,与其他二进制逻辑门结合使用,它们都可以用于执行算术运算,例如创建加法器或执行加法的单元

我甚至无法理解如何使用三元计算来实现这一点。未知(0)因子如何进入逻辑门并用于执行算术?见鬼,我甚至不能理解三元与门的输出是什么,以及它们是如何使用的

例如,我假设一台三值计算机的与门接受3个输入,而不是2个。让我们调用输入A、B和C

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


一个三值与门可以接受3个输入,对吗?所以在三元与门中,a,B和C可以是-1,0或1。这意味着A/B/C有27种可能的组合。我不会列出每种组合的可能结果,而是为大家把它们加起来。:)

无论如何,只有一种组合,其中1为输出,有7种组合,其中0为输出(假设A、B和C都为0,则与门将输出0),有19种组合,其中-1为输出。在二进制加法器中,如果门抛出1,它将被发送到另一个门进行求值,依此类推,直到加法完成。在三进制中,如果一个门接收到一个0,它会做什么

我知道这需要大量阅读,因此我将尝试总结一下,并列出以下主要问题:

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

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


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

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

用base 3编写时,这些操作定义良好。比如说

+ |  0  1  2
------------
0 |  0  1  2
1 |  1  2 10
2 |  2 10 11
与二进制算法一样,on需要计算一个和trit和一个进位。传播进位时,下表适用

+c|  0  1  2
------------
0 |  1  2 10
1 |  2 10 11
2 | 10 11 12
因此,您确实需要两个三输入函数(两个trit输入和一个进位),给出总和trit和进位。(请注意,二进制ALU的添加方式是相同的:两位输入和一个进位输入,给出一个和和和一个进位。)

这是否可以从基本的二进门或三进门实现取决于技术

逻辑谓词和/或没有修改的理由,应该保持二进制。布尔运算仍然是布尔运算


此外,如果你列举两个三元参数的所有三元函数(即9个输入组合),你会发现其中有19683个。将其与16个二进制函数进行对比。这乱七八糟的局面难以控制。(甚至不要想所有三元函数,其中7625597484987个。)

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

因此,没有理由重新发明轮子,使用标准的二进制逻辑门在三值计算机中可以很好地工作

在二进制中,0为假,1为真,二进制中的数字从右到左读取,每个数字都跟随二的幂。例如,10010将是18(2+16)。这个数字系统是递增的,这意味着你左边的1越多,如果转换成十进制,数字就越高,但是这个系统没有办法递减。所有这些都是使用晶体管来完成的,晶体管只关心是否有电压流过或没有电压流过,从而确定是否有电压,它是开的,位是1,如果没有,那么它是关的,位是0

在三元模式中,不会出现开/关。与二元计算机中的标准晶体管不同,三元计算机中的晶体管会测试是否有电压以确定位的值,而三元计算机中的晶体管则会测试电压是负电压、正电压还是接地电压。(-1表示负电压,0表示接地,+1表示正电压)

使用这种系统,十进制数将以三进制形式书写,类似于十进制数