1

我在方案中制作 n 位 ALU,到目前为止我有一个 1 位 ALU。有人可以告诉我如何解决这个问题吗?以下是它的说明:

程序的格式是

  (ALUn selection x1 x2 n)    

其中第一个参数selection可以采用任何值:'add, 'sub, 'and, 'or, 或'xor. 第二个和第三个参数x1x2是列表格式的两个 n 位二进制数。

4

1 回答 1

1

这是与或异或的代码:

(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)]))

您应该弄清楚如何自己添加和子!

于 2012-04-10T12:31:31.297 回答