C언어 기본
비트 쉬프트
홍박스
2021. 7. 21. 17:16
728x90
비트 쉬프트
10진수에서 자리수 한칸 올라간다는것은 10배 증가한것이다.
그럼 2진수에서 한칸 올라간다는것은 2배 증가한것이다.
그럼 << 연산자는 한칸 올라간것이니깐
2진수에선 2배
10진수에선 10배인것이다.
>> 은 1/10
1/2로 나눈 몫 인것이다.
비트연산자를 언제 사용하는가?
게임에서 사용하는 경우의 예
상태 조합
4바이트면
32가지의 상태를 나타낼 수 있다.
#define HUNGRY 0x1
#define THIRSTY 0x2
#define TIRED 0x4
#define HOT 0x8
INT STATUS
HUNGRY | THIRSTY | LOW HP | LOW MP | HOT | TIRED |
1 | 0 | 0 | 0 | 1 | 0 |
STATUS |= HUNGRY
STATUS |= HOT
특정자리 비트 제거
STATUS &= ~HOT
728x90