Programming/C

[C] bit 연산자를 사용하여 bit set, clear, toggle 하기

임아톰 2023. 3. 14. 10:44

bit clear

비트 단위 AND 연산자를 이용하여 비트를 클리어한다.

P0 = P0 & ~(1<<4);

4번 비트를 클리어

bit clear bit
P0 1 0 0 1 0 1 0 1
~(1<<4) 1 1 1 0 1 1 1 1
결과 1 0 0 0 0 1 0 1

 

bit set

비트 단위 OR 연산자를 이용하여 비트를 셋한다.

P0 = P0 | (1<<4);

4번 비트를 셋

bit clear bit
P0 1 0 0 0 0 1 0 1
(1<<4) 0 0 0 1 0 0 0 0
결과 1 0 0 1 0 1 0 1

 

bit toggle

비트 단위 XOR 연산자를 이용하여 비트를 토글한다.

P0 = P0 ^ (1<<0);

0번 비트를 토글

bit clear bit
P0 1 0 0 1 0 1 0 1
(1<<3) 0 0 0 0 0 0 0 1
결과 1 0 0 1 0 1 0 0

 

코드 예시

#include <stdio.h>

void print_binary(unsigned char p)
{
    printf("0b");
    for (int i = 7; i >= 0; --i) { //8자리 숫자까지 나타냄
        int result = p >> i & 1;
        printf("%d", result);
    }
    printf("\n");
}

int main(){
    unsigned char P0 = 0x95;
    printf("P0: ");
    print_binary(P0); // 0b10010101
     
    P0 &= ~(1<<4); // NO.4 bit clear
    printf("After NO.4 bit clear: ");
    print_binary(P0); // 0b10000101

    P0 |= (1<<4);
    printf("After NO.4 bit set: ");
    print_binary(P0); // 0b10010101

    P0 ^= (1<<0); // NO. 0 bit toggle
    printf("After NO.0 bit toggle: ");
    print_binary(P0); // 0b10010100
}
반응형