Назначить специфицированные c 8 битов для uint8_t - PullRequest
0 голосов
/ 16 января 2020

Есть ли способ выполнить назначение, например

uint8_t x = 0010 0010;

без сдвига битов?

Я использую c99.

Я действительно хочу сделать это статически c, потому что я ничего не меняю в этом «числе», поэтому это спасло бы меня от нескольких строк кода.

1 Ответ

1 голос
/ 16 января 2020

Создайте файл заголовка, который называется что-то вроде binaryliterals.h, затем:

#define b0000_0000 ((unsigned char)0x00)
#define b0000_0001 ((unsigned char)0x01)
#define b0000_0010 ((unsigned char)0x02)
// etc...

Если вы поищите inte rnet, вы, вероятно, найдете много примеров этого. Раньше у меня был один в моем ящике для инструментов, но в настоящий момент он, вероятно, находится в коробке с архивированными жесткими дисками. Быстрее написать это с нуля.

...