Вероятно, простой побитовый вопрос - PullRequest
0 голосов
/ 15 июня 2019
unsigned short int temp, temp2;

temp = 0xbc61; // 1011110001100001
// temp2 has to be 0x61 (01100001) but I don't know how to shift, mask or whatever
temp2 = (temp << 8); // this doesnt work, because I get 0x6100 (110000100000000)

1 Ответ

3 голосов
/ 15 июня 2019

Чтобы выбрать 8 младших битов 1011110001100001, вам нужно выполнить побитовую операцию И с 11111111:

  1011110001100001
& 0000000011111111
------------------
  0000000001100001

То есть

temp2 = temp & 0xff;  // or 255
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...