什么是可以生成所有计算的最小数学运算符集?

时间:2014-11-26 16:40:24

标签: math computer-science

我正在考虑一个最小指令集CPU,比如十个或更少的操作码。我想找到仍然可以执行任何通用功能的最小数学运算代码集。

例如,在逻辑中,运​​算符AND,OR,NOT是冗余的。您可以使用其他两个来计算任何函数,因此最小的逻辑运算符集只需要两个。

对于算术函数,我可以使用两个操作码,可能是ADD和逐位反转吗? (假设进位和进位执行指令)。

使用ADD和BITINV,我可以在没有显式SUB运算符的情况下进行减法。乘法和除法是加法和减法的简单扩展。 SHL乘以2,SHR除以2。

为了覆盖逻辑和算术,它看起来像AND,BITINV,ADD是一个完整的最小集合。我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

您可能还需要包含条件和跳转等控制指令,以使指令集图灵完成(或者您的指令集应该能够构造所有computable functions)。

例如,在您的问题中,

  

乘法和除法是添加和扩展的简单扩展   减法

如果没有循环和条件的概念,这是不正确的(考虑例如用于除法的欧几里德算法)。你必须在某个地方设置循环才能进行划分。