본문 바로가기
C/개념, 이해

[C/개념, 이해]비트연산자와 사용예시 C언어

by starfish22 2021. 11. 18.
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

댓글