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
           

STATUS |= HUNGRY

STATUS |= HOT

 

특정자리 비트 제거

STATUS &= ~HOT

 

728x90