비트연산자

자주 하는 실수

토픽 비트연산자

학생들이 자주 하는 실수

실수 1: &와 &&, |와 || 혼동

// 비트 연산
a & b   // 비트 단위 AND
a | b   // 비트 단위 OR

// 논리 연산
a && b  // 논리 AND (참/거짓)
a || b  // 논리 OR (참/거짓)
구분법: 1개(&, |)는 비트 연산, 2개(&&, ||)는 논리 연산

실수 2: 시프트 방향 혼동

<< : 왼쪽으로 (값이 커짐, x2)
>> : 오른쪽으로 (값이 작아짐, /2)
기억법: 화살표 방향으로 비트가 이동

실수 3: 연산자 우선순위

if (value & (1 << 3) == 0)  // ❌ 잘못됨!
// == 가 & 보다 먼저 실행됨

if ((value & (1 << 3)) == 0)  // ✅ 괄호 필수!
비교 연산자(==)가 비트 연산자(&)보다 우선순위가 높습니다!

실수 4: ~연산 결과 오해

unsigned char a = 1;   // 00000001
unsigned char b = ~a;  // 11111110 = 254 (0이 아님!)

댓글

댓글 본문