연습 문제
문제 1: 기본 연산
int a = 12; // 1100 int b = 10; // 1010 // 다음 결과를 예측하세요 a & b = ? a | b = ? a ^ b = ?
정답: a & b = 8 (1000), a | b = 14 (1110), a ^ b = 6 (0110)
문제 2: 시프트 연산
int x = 1; // 다음 결과를 예측하세요 x << 4 = ? 16 >> 2 = ?
정답: x << 4 = 16 (00010000), 16 >> 2 = 4 (00000100)
문제 3: 비트 조작
unsigned char value = 0b10100101; // 다음을 수행한 후 value 값은? value |= (1 << 1); // 1번 비트 켜기 value &= ~(1 << 2); // 2번 비트 끄기
정답: 초기값 10100101 → 1번 켜기 10100111 → 2번 끄기 10100011 = 163
문제 4: Arduino 스타일
// 다음 코드가 하는 일을 설명하세요 PORTB |= (1 << 5); PORTB &= ~(1 << 5); PORTB ^= (1 << 5);
정답: PORTB |= (1 << 5)는 5번 핀 HIGH (LED 켜기), PORTB &= ~(1 << 5)는 5번 핀 LOW (LED 끄기), PORTB ^= (1 << 5)는 5번 핀 토글 (상태 반전)

