【发布时间】:2013-04-14 06:33:08
【问题描述】:
我在方案中制作 n 位 ALU,到目前为止我有一个 1 位 ALU。 有人可以告诉我如何解决这个问题吗?以下是它的说明:
程序的格式是
(ALUn selection x1 x2 n)其中第一个参数
selection可以采用以下任何值:'add、'sub、'and、'or或'xor。第二个和第三个参数x1和x2是列表格式的两个n 位二进制数。
【问题讨论】:
我在方案中制作 n 位 ALU,到目前为止我有一个 1 位 ALU。 有人可以告诉我如何解决这个问题吗?以下是它的说明:
程序的格式是
(ALUn selection x1 x2 n)其中第一个参数
selection可以采用以下任何值:'add、'sub、'and、'or或'xor。第二个和第三个参数x1和x2是列表格式的两个n 位二进制数。
【问题讨论】:
这是与或异或的代码:
(define (ALUn selection x1 x2 n)
(cond
[(or (not (= (length x1) n)) (not (= (length x2) n))) (error "Wrong register length!")]
[(equal? selection 'and) (map bitwise-and x1 x2)]
[(equal? selection 'or) (map bitwise-ior x1 x2)]
[(equal? selection 'xor) (map bitwise-xor x1 x2)]))
您应该自己弄清楚如何添加和替换!
【讨论】: