Взлом битов: расширение битов
Я пытаюсь преобразоватьuint16_t
вход вuint32_t
немного маски Один бит на входе переключает два бита в выходной битовой маске. Вот пример преобразования 4-битного ввода в 8-битную маску:
Input Output
ABCDb -> AABB CCDDb
A,B,C,D are individual bits
Example outputs:
0000b -> 0000 0000b
0001b -> 0000 0011b
0010b -> 0000 1100b
0011b -> 0000 1111b
....
1100b -> 1111 0000b
1101b -> 1111 0011b
1110b -> 1111 1100b
1111b -> 1111 1111b
Есть ли хитрый способ добиться такого поведения?