объединение 4 октетов значений со знаком и 1 байта значений без знака для выполнения определенной функции - PullRequest
0 голосов
/ 11 декабря 2018

Мне нужно выделить функцию для 4 октетов и другую функцию для 1 байта, и мне нужно объединить их вместе в конце.Я работал над значениями со знаком и без знака отдельно, но не представлял, как их объединить для конкретного приложения.Как мне это сделать?

enter image description here

1 Ответ

0 голосов
/ 11 декабря 2018

Ваше изображение в сыром виде ASCII:

| MSB 5  |     4  |    3   |    2   |    1   | LSB 0  |
|     ACTIVE ELECTRICAL ENERGY      | TARIFF |VALIDITY|
|vvvvvvvv|vvvvvvvv|vvvvvvvv|vvvvvvvv|uuuuuuuu|rrrrrrbb|

Предположим, у вас есть все эти биты в allbits, выполните

unsigned v = allbits >> 16;
unsigned u = (allbits >> 8) & 0xff;
unsigned r = (allbits >> 2) & 0x3f
unsigned b = allbits & 0x03;

Или наоборот, построив allbitsиз частей

allbits = (v << 16) | (u << 8) | (r << 2) | (b);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...