비트연산

연습문제

연습 문제

문제 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번 핀 토글 (상태 반전)

댓글

댓글 본문
버전 관리
anton
현재 버전
선택 버전
graphittie 자세히 보기