12
「ビット借入」2つの数字
小さい数字が大きい数字からビットを借りることができることをご存知ですか?以下に例を示します。2つの数値5と14を考えてみましょう。最初に、それらをバイナリで書き出します。 5 14 000101 001110 最初に、大きい数値から最小のオンビットを取り、他の数値の最小のオフビットに与えます。そう This bit turns off | v 000101 001110 ^ | This bit turns on 今、私たちは持っています 000111 001100 数字は7と12です。最初の数字はまだ小さいので、続けます。 000111 001100 001111 001000 これで15と8になりましたので、停止できます。この一連の操作を「ビット借入」という2つの数字と呼びます。別の例を見てみましょう。20および61。 20 61 010100 111101 010101 111100 010111 111000 111111 100000 63 32 最終結果は32、63 です。もう1つやりましょう。31と12。31はすでに12よりも大きいため、何もする必要はありません。31と12をビット借用すると、31と12は変化しません。 チャレンジ あなたの課題は、2つの数字を受け取り、それらをビット借用するプログラムまたは関数を作成することです。2つの数値は常に正の整数になります。入力と出力は、任意の合理的な形式にすることができます。 テストIO: Input: 2, 3 Output: …