diff options
Diffstat (limited to '2025-linuxdays/bitfield.c')
| -rw-r--r-- | 2025-linuxdays/bitfield.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/2025-linuxdays/bitfield.c b/2025-linuxdays/bitfield.c new file mode 100644 index 0000000..a854158 --- /dev/null +++ b/2025-linuxdays/bitfield.c @@ -0,0 +1,17 @@ +#include <inttypes.h> +#include <stdint.h> +#include <stdio.h> + +int main(int argc, char *argv[]) { + union pixel { + struct c { + unsigned r : 5; + unsigned g : 6; + unsigned b : 5; + } c; + uint16_t val; + }; + + union pixel p = {.c.r = 0x1b, .c.g = 0x4, .c.b = 0xa}; + printf("%.4" PRIx16 " == %" PRIx16 "\n", p.val, 0x1b | 0x4 << 5 | 0xa << 11); +} |
