Получить младшие байты из uint16_t в C - PullRequest
0 голосов
/ 12 марта 2019

Я хочу получить младшие байты uint16_t в C.

Пример:

20544 = 0x5040
0x40 = 64

Я пытался, (X & ((1<<2) - 1)). Это не работает для меня.

1 Ответ

4 голосов
/ 12 марта 2019

Вы используете байты (множественное число), но uint16_t состоит из двух байтов, поэтому я предполагаю, что вы имеете в виду наименее значимый байт (единственное).Если это так, вот один из способов получить его:

uint8_t lsb = ((uint8_t)(((uint32_t)(val)) & 0xFF))
...