aboutsummaryrefslogtreecommitdiff
path: root/2025-linuxdays/bitfield.c
diff options
context:
space:
mode:
Diffstat (limited to '2025-linuxdays/bitfield.c')
-rw-r--r--2025-linuxdays/bitfield.c17
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);
+}