Как я могу создать из двух n-битных двоичных чисел 2n-двоичное число? - PullRequest
0 голосов
/ 27 февраля 2020

Предположим, у меня n = 4, поэтому два 4-разрядных двоичных числа. B1 = b1010 и B2 = b0110.
Я хочу создать 8-разрядное число, которое выглядит следующим образом b10100110 (B1B2).
Как я могу сделать такую ​​вещь в Java?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Конечно, вы можете умножить и добавить их в соответствии с предложением. Я предпочитаю использовать операторы битовых манипуляций.

       int b1 = 0b1010;
       int b2 = 0b0110;

       // shift b1 left 4 bits and then OR it with b2.
       int result = (b1<<4)|b2;

       System.out.println(Integer.toBinaryString(result));

В качестве примечания: для каждого бита, который вы сдвигаете влево, вы умножаете на степень 2. Таким образом, сдвиг влево на 4 бита умножается на 16. Для правого сдвигаясь, вы делитесь на степени 2.

0 голосов
/ 27 февраля 2020

Умножьте один на 16, что равносильно добавлению четырех нулей в конец. Затем добавьте их. В общем случае умножение на 2^n добавляет n zeroes.

...