这有点棘手,对于完成我认为的任务的人来说,这是一个很好的挑战。我搜索了以前问过的所有问题,但我找不到我想要的东西。
这里的目标是,在 < enger > binary < / strong > 上以 < enger > > binary 字写成的 < enger > < nger > < /strong > bits > 中,用每个整数的n位数(如果第一个整数最大,则结果为0,否则为1)来找到其中最大的一个,最终的目标是能够绘制一条电子电路,其中2*n bits将是有或没有紧张的电线,并将电线插在实际的电子部件中,以进行符合逻辑的操作。
我开始思考这个问题时意识到,无论发生什么(即,不管发生什么,n), 2n 大于 20 +... + 2(n-1) (从数学角度来说,这很容易找到) 。这意味着,无论多少整数都有一点(数k), 当其他整数中相应的位数为 0 时, s 值为 1, 而其他的位数在 n 和 k(所有位数在 k 左边) 之间是相同的, 最大 。 例如 :
A : 010(1)1011 is greater than B : 010(0)1111 with the significant bit in parentheses. All bits to its left are identical, and we don t have to care about the others.
So one can perform an exclusive OR (XOR) on all pairs of bits : the significant one would yield a 1, and then I can perform a NAND between corresponding bit of A with the result of that XOR, so that it d yield a 0 if A s k-th bit is a 1 and a 1 if it s B s k-th bit that is a 1. The only thing is ... what about the bits to the right of the significant one ? They can be different (thus also yielding a 1 when performing a XOR) but I have to ignore that ... Any ideas ?