Объединить 2 целых числа в 1 байт - PullRequest
0 голосов
/ 14 марта 2019

Я работаю в этом со вчерашнего дня, и я не могу полностью понять сдвиг биты. То, что я пытаюсь сделать, это то, что мне нужно объединить 2 числа в 1 байт. Первое число в первых четырех битах и ​​второе в последних четырех битах.

0001 = 1

0110 = 6

И затем сделать их 1 байт из двоичного "00010110".

После этого я также хочу извлечь 1 и 6 отдельно. Как мне это сделать?

Все, что я могу сделать, это извлечение, которое я получил из другого вопроса здесь:

int b = Convert.ToByte(value); 
byte[] b1 = new byte[2];
b1[0] = b >> 4;
b1[1] = b & 0x0F;

1 Ответ

1 голос
/ 14 марта 2019

Предполагая, что value1 равно 0001 = 1, а value2 равно 0110 = 6, вы можете объединить оба значения с помощью операции OR |.

byte result = 0;
try {
  byte b1 = Convert.ToByte(value1); 
  byte b2 = Convert.ToByte(value2); 
  result = (b1 << 4) | (b2 & 0x0F);
} catch (OverflowException) {
  ... // Handle 'Int too big' situation.
}
...