12
“借位”两个数字
您是否知道少数可以从较大的数字借位?这是一个例子。假设我们的两个数字分别为5和14。首先,将它们写成二进制: 5 14 000101 001110 首先,我们从较大的数字中减去最小的on位,然后将其赋予其他数字中的最小off位。所以 This bit turns off | v 000101 001110 ^ | This bit turns on 现在我们有 000111 001100 我们的数字是7和12。第一个数字仍然较小,因此我们继续。 000111 001100 001111 001000 现在我们有15和8,所以我们可以停下来。我们将这组操作称为“借位”两个数字。让我们再举一个例子。20和61。 20 61 010100 111101 010101 111100 010111 111000 111111 100000 63 32 因此,我们最终的结果是32,63,让我们做一个更多。31和12。31已经大于12,因此无事可做!借位31和12不会产生31和12的变化。 挑战 您的挑战是编写一个接受两个数字并对其进行位借位的程序或函数。这两个数字将始终为正整数。您的输入和输出可以采用任何合理的格式。 测试IO: Input: 2, 3 Output: 3, …