- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对创建/设计(但很可能只是想象)三元计算机而不是二进制计算机的想法非常感兴趣。
如果我要这样做,我会使用一个平衡的 base-3 系统,所以一个 trit (trit 是 base-3 就像 bit 是 base-2) 可以是 -1, 0 或 +1。使用 trits 存储数据比使用位存储数据要紧凑大约 36%,就像我们在今天的计算机上所做的那样,但是三元算术会复杂得多,因此无法确定使用三元计算的 ALU 是否比二进制更快或更慢。
但我离题了,这只是一些背景知识,并不完全与问题有关,但它是相关的。 :)
因此,trit 的可能值:
-1是off/false,相当于二进制的0。
0 是未知。二进制中没有等价物。
+1 是on/true,与二进制中的 1 相同。
我的问题是...就计算而言,0 有什么意义?例如,我已经阅读了很多关于逻辑门的文章,并且我了解它们的工作方式以及它们如何协同工作以创建 ALU。二进制与门非常简单,与其他二进制逻辑门结合使用,它们都可以组合使用来执行算术运算,例如创建加法器或执行加法的单元。
我什至无法理解如何使用三元计算来完成这件事。未知数 (0) 如何进入逻辑门并用于执行算术运算?该死,我什至无法理解三元与门会输出什么以及如何使用它们。
例如,我假设对于三元计算机,与门将接受 3 个输入而不是 2 个。我们将输入称为 A、B 和 C。
在二进制与门中,A 和 B 可以是 0 或 1。A 和 B 有四种可能的组合可以输入到与门中。这导致 AND 门只有四个可能的输出。如果 A 和 B 都为 1,则与门输出 1。如果它是 A 和 B 的其他三个组合中的任何一个,则输出 0。(考虑所有可能的 A/B 组合,与门的可能结果:0、0 , 0, 1)
三元与门需要 3 个输入,对吧?所以在三元与门中,A、B 和 C 可以是 -1、0 或 1。这意味着 A/B/C 有 27 种可能的组合。与其列出每种组合的可能结果,我只是为你们把它们加起来。 :)
总之,输出1的组合只有一种,输出0的组合有7种(假设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 需要计算 sum trit 和 carry。传播进位时,适用下表
+c| 0 1 2
------------
0 | 1 2 10
1 | 2 10 11
2 | 10 11 12
所以您确实需要两个三输入函数(两个输入和一个进位),给出总和位和进位位。 (请注意,二进制 ALU 以相同的方式相加:两位输入和一个进位给出一个和和一个进位。)
这是否可以从基本二元门或三元门实现将取决于技术。
逻辑谓词 AND/OR 没有理由被修改,应该保持二进制。 bool 运算仍然是 bool 值。
此外,如果您枚举两个三元参数(即 9 个输入组合)的所有三元函数,您会找到其中的 19683 个。将此与 16 个二进制函数进行对比。这种困惑是无法控制的。 (别想所有的三元三元函数,7625597484987个。)
关于binary - 三元计算机 : what would the third (unknown) part of a trit be used for?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34257590/
我想知道javascript中if的简码是什么? 就像在 PHP 中一样: $res = ($x > $y)? $x: $y; 它在 JavaScript 中的转换是什么? 最佳答案 在 javasc
请问为什么下面的代码会报错? 错误: numberOne > numberTwo ? return "true" : return "false"; ^
在我的代码中,我检查系统函数是否等于零,如果是我返回另一个值,如果不是,我返回测试值。 (class.verylongfunc(arg, arg) == 0) ? othervar : cla
在 PHP 中,有没有一种方法可以使用三元条件连接两个字符串? 当我尝试这样做时,我得到的只是 else 而不是所需的 something else。 最佳答案 像这样把整个三元运算符放在方括号中:
似乎在三元运算符中存在某种类型混淆。我知道这已在其他 SO 线程中得到解决,但它始终与可空值有关。另外,就我而言,我真的只是在寻找更好的方法。 我希望能够使用 proc.Parameters[PARA
有没有办法在不进行赋值或伪造赋值的情况下进行 java 三元运算? 我喜欢在执行一堆 if/then/else 时的简洁三元代码。 我希望能够基于 boolean 代数语句调用两个 void 函数之一
我正在使用 XSLT 和 XML 来生成输出文档。 我在数据中拥有的(以我无法控制的 XML 形式)如下: 4 我需要在计算中使用这些。我看到为这些提供默认值需要对文档执行转换以提供一个有点冗长的
这个问题已经有答案了: Ternary operators in JavaScript without an "else" (13 个回答) 已关闭 4 年前。 我一直使用这样的三元表达式,但我不喜欢
我在 VB.NET 中发现了一个可以轻松重现的简单错误: Dim pDate As Date? Dim pString As String = "" ' works fine as expected
所以,我有这段代码,它实际上有效: (散列将是这样的对象:{"bob"=> "12, "Roger"=> "15", etc},并且 isGood(key) 是调用函数 isGood ,如果玩家好或坏
是否有以下 JavaScript bool 三元表达式的简写语法: var foo = (expression) ? true : false 最佳答案 当然,您只想将表达式转换为 bool 值: v
在 Java 中,如果我在常规 if 中使用三元 if 运算符,例如: if ((x > y - z) ? true : callLongWaitedMethod(many, parameteres)
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 7 年前。 Improve
var test = "Hello World!"; 在 Java 10+ 中,上面的代码片段可以编译,test 在编译时被推断为 String。 但是,我们可以使用条件(三元)运算符来返回不同的类型
嗨,我尝试在渲染内部使用三元条件,但遇到一些错误,这是我的代码: render() { return ( (this.emai
这里我有以下 JavaScript 代码,带有两个值。 var w = $("#id1").val(); var h = $("#id2").val(); (w == h) ? (w=350 , h
我一直想知道如何用 C++ 兼容语言编写 "A ? B : C" 语法。 我认为它的工作方式类似于:(伪代码) If A > B C = A Else C = B 有没有经验丰富的 C++
考虑两个 vector ,A 和 B,大小为 n,7 <= n <= 23 . A 和B 都只包含-1、0 和1。 我需要一个计算A 和B 内积的快速算法。 到目前为止,我一直在考虑使用以下编码将
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
如果您一开始就讨厌三元条件运算符,则无需回复 ;) 我经常看到它与赋值表达式一起使用,例如: var foo = (some_condition) ? then_code : else_code; 但
我是一名优秀的程序员,十分优秀!