2014-01-30 87 views
1

我寫了一個算法來計算兩個二進制數的乘法。在我的指令集中,沒有和指令,只是一個nand(不是)。我閱讀,邏輯上講,兩個nands創造一個和。我覺得這是非常簡單的,我也得太多Two Nands Make an And

因此,舉例來說,如果我想計算和3 & 1,我怎麼能做到這一點使用兩個NAND操作有兩個指令

我的ISA執行如下所示的Nand,並有8個編號爲0-7的寄存器。例如:

NAND 1 2 3(在REG1和REG2和存儲NAND內容在REG3)

回答

3
result = x nand y 
result = result nand result 

使用第二nand作爲not

2

NAND是~(a & b)所以如果你給它另一個~,你會得到一個和。如果您沒有任何非門,您可以構建一個NAND:~(a & a)~a相同。把它放在一起,你得到

nand r1 r2 r3 
nand r3 r3 r3