diff --git a/practice/g_bitFlag.c b/practice/g_bitFlag.c new file mode 100644 index 0000000..ee92479 --- /dev/null +++ b/practice/g_bitFlag.c @@ -0,0 +1,30 @@ +#include + +#define FLAG_A 0x01 // 0000 0001 +#define FLAG_B 0x02 // 0000 0010 +#define FLAG_C 0x04 // 0000 0100 + +int main() +{ + unsigned char flags = 0; + + printf("A: %c, B: %c, C: %c\n", (flags & FLAG_A ? 'O' : 'X'), (flags & FLAG_B ? 'O' : 'X'), (flags & FLAG_C ? 'O' : 'X')); + + // A 활성화 + flags |= FLAG_A; + printf("A: %c, B: %c, C: %c\n", (flags & FLAG_A ? 'O' : 'X'), (flags & FLAG_B ? 'O' : 'X'), (flags & FLAG_C ? 'O' : 'X')); + + // C 활성화 + flags |= FLAG_C; + printf("A: %c, B: %c, C: %c\n", (flags & FLAG_A ? 'O' : 'X'), (flags & FLAG_B ? 'O' : 'X'), (flags & FLAG_C ? 'O' : 'X')); + + // B 활성화 + flags |= FLAG_B; + printf("A: %c, B: %c, C: %c\n", (flags & FLAG_A ? 'O' : 'X'), (flags & FLAG_B ? 'O' : 'X'), (flags & FLAG_C ? 'O' : 'X')); + + // B 비활성화 + flags &= ~FLAG_B; + printf("A: %c, B: %c, C: %c\n", (flags & FLAG_A ? 'O' : 'X'), (flags & FLAG_B ? 'O' : 'X'), (flags & FLAG_C ? 'O' : 'X')); + + return 0; +} \ No newline at end of file