+ uint8_t data[4] = {0x12, 0x34, 0x56, 0x78};
+ uint8_t result = get_byte(data, sizeof(data), 0);
+ // result = 0x12;
+ result = get_nibble(data, sizeof(data), 0);
+ // result = 0x1;
+ bool success = copy_bits_right_aligned(data, 4, 4, 12, result, 4)
+ // success == true
+ // result[0] == 0x2
+ // result[1] == 0x34
+
+## 8 Byte Bitfield Decoding
+
+ uint64_t data = 0x8000000000000000;
+ uint64_t result = get_bit_field(data, 0, 1, false);
+ // result == 0x1
+
+ data = 0x0402574d555a0401;
+ result = get_bit_field(data, 16, 32, false);
+ // result = 0x574d555a;
+
+ data = 0x00000000F34DFCFF;
+ result = eightbyte_get_byte(data, 0, false);
+ //result = 0x0
+
+ result = eightbyte_get_byte(data, 4, false);
+ //result = 0xF3
+
+ result = eightbyte_get_nibble(data, 10, false);
+ //result = 0x4;
+
+## 8 Byte Bitfield Encoding
+
+ uint64_t data = 0;
+ fail_unless(set_bit_field(&data, 1, 0, 1));
+ uint64_t result = get_bit_field(data, 0, 1, false);
+ ck_assert_int_eq(result, 0x1);
+
+TODO setting bit fields is just copying
+