728x90
▶비트연산자
<< , >> : 2의 배수만큼 옆으로 이동 (비교,대입)
& : 둘다 1이면 1 나머지 0 (비교,대입)
| : 둘중 1이 하나라도 있으면 1 없으면 0 (비교,대입)
^ : 같으면 0 다르면 1 (비교,대입)
~ : 1은 0으로 0은 1로 (대입)
▶사용 예시
#include <stdio.h>
#define BUFF 1 //2진수로 나타내기 위해 2의 제곱수 , 16진수 : 0x1
#define POISON 2 //16진수 : 0x2
#define FIRE 4 //0x4
#define HUNGRY 8 //0x8
#define COLD 16 //0x10
// #define COLD 32 //0x20
// #define COLD 64 //0x40
// #define COLD 0x80
// #define COLD 0x100
// #define COLD 0x200
// #define COLD 0x400
// #define COLD 0x800
int main()
{
unsigned int player = 0;
player |= BUFF; //BUFF의 1을 player에게 추가
if (player & BUFF)
{
printf("버프상태\n");
}
player |= FIRE;
if (player & FIRE)
{
printf("화상상태\n");
}
player |= POISON;
player &= ~BUFF; //BUFF를 반전시켜서 1을 0으로 만듦
//player의 기존상태에서 BUFF만 없앰
if (player & BUFF)
{
printf("버프상태\n");
}
else
{
printf("버프해제\n");
}
if (player & POISON)
{
printf("중독상태\n");
}
return 0;
}
728x90
'C > 개념, 이해' 카테고리의 다른 글
함수 포인터 C언어 (0) | 2021.11.21 |
---|---|
char , wchar_t C언어 (0) | 2021.11.19 |
const 포인터 C언어 (0) | 2021.11.18 |
volatile 변수 C언어 (0) | 2021.11.18 |
댓글