◾ 비트 연산자
- 비트 단위로 연산이 진행될 때
- 쉬프트 <<, >> : 비트를 정한 방향으로 한칸씩 민다!
unsigned char byte = 1;
// byte = byte << 1;
byte <<= 1; // 왼쪽으로 한칸 밀겠다.
- 10진수에서 숫자가 다음자리로 넘어간다면 10배 증가
- 2진수에서 숫자가 다음자리로 넘어간다면 2배 증가
byte <<= 3; // 2^n 배수
byte >>= 1; // 2^n 나눈 몫
- 1/2 절반으로 줄어듦 나누기는 나머지가 발생할 수 있음
- (>>) 할 시 밀리면서 나머지는 사라짐 고로 몫만 남게 됨
◾ 비트 곱(&), 합(|), xor(^), 반전(~)
- & : 둘다 1인 경우 1
- | : 둘중 하나라도 1이면 1
- ^ : 같으면 0, 다르면 1
- ~ : 1은 0으로, 0은 1로