비트 연산자는 주로 메모리를 효율적으로 관리하거나 서버와 클라이언트 간의 전송하는 패킷을 효율적으로 주고 받아야 하는 경우 고민해볼 수 있다...

 

C/C++에서 가장 기초인 자료형에 대해 배우게 되는데... 1byte 부터 8byte까지 다양하게 사용이 가능하다...

cout << sizeof(bool); 명령으로 살펴보면 bool 역시 1byte임을 알 수 있다. 게임의 경우 장비에 대한 착용 유무를 확인 한다고 하면 대략 기존 8개 정도(머리, 상의, 하의, 신발, 장갑, 귀걸이 2개 , 목걸이 등등)로 나뉜다...

그렇다면 이 8개를 1byte씩 계산하면 대략 8byte를 사용하지만 4byte int형으로 표현도 가능하다.

우리가 비트의 대한 개념을 배웠다면 숫자 표현이 4byte는 32bit 표현 가능하다.

int형 4byte = 32 bit이므로 비트 표현은 32개 표현 가능..

 

// Bit 단위로 대입
unsigned int  EquipItem = 0;
EquipItem |= 1;
EquipItem |= 4;

// 아이템 존재 유무 확인
for (int i=0; i<32; ++i)
{
	if (EquipItem & (1 << i))
		cout << i << endl;
}


===============================================================================================

만약 bool 자료형을 배열로 만들어 사용한다면이라는 생각을 해보게 되었다..

bool EquipItem[8] = {false, };

cout << sizeof(EquipItem) << endl;

사이즈가 궁금해서 일단 출력해 봤더니 8byte가 나온다...

 

약간의 계산적인 부분이 비트 연산할 때 복잡할거라 생각했지만 이해하고 나니 훨씬 간편하다...

 

어떤 상황이냐에 따라 코드가 달라질 것이다... 기초는 역시 중요한 것 같다...

기초를 튼튼히 하면 할수록 많은 것들이 보인다...

경력 3년이 될 때까지는 계속 머리속에 기초는 외워야겠다는 생각을 해본다...

 

 

+ Recent posts