(3 = 0011) & (5 = 0101) = (1 = 0001) (3 = 0011) | (5 = 0101) = (7 = 0111) (3 = 0011) ^ (5 = 0101) = (6 = 0110) (3 = 0011) << 5 = (48 = 00110000) (5 = 0101) >> 3 = (0 = 0000) ~(3 = 0011) = (12 = 1100)
(3 = 0011) & (5 = 0101) = (1 = 0001)
0011 & 0101 = 0001 0011 | 0101 = 0111 0011 ^ 0101 = 0110 0011 << 5 = 00110000 0101 >> 3 = 0000 ~0011 = 1100
union readable_flags {
struct {
unsigned flag_0 : 1;
unsigned flag_1 : 1;
unsigned flag_2 : 1;
unsigned flag_3 : 1;
unsigned flag_4 : 1;
unsigned flag_5 : 1;
unsigned flag_6 : 1;
unsigned flag_7 : 1;
} flags;
unsigned long raw;
}
readable_flags rf; // Standard C++ rf.flags.flag_0 = 1; // MSVS with anonymous structure rf.flag_0 = 1;