From 3a1d21f8cfba73684ea8a6e5c8dc3ff8f65f991a Mon Sep 17 00:00:00 2001 From: Peace Date: Fri, 25 Apr 2025 11:50:10 +0900 Subject: [PATCH] bit flag --- practice/g_bitFlag.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 practice/g_bitFlag.c 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