본문 바로가기

computer

C언어 비트 연산자

이 글은 널널한 개발자님의 C언어 비트 연산자의 위력을 정리한 글이다.

포인터라는 개념은 컴퓨터 구조나 운영체제를 잘 알고있다면 쉽게 이해될 것이다.
C언어의 꽃이 포인터라면, 가장 강력한 기능은 비트연산자이다.

짝수, 홀수를 구분해야 하는 상황이라면 2진수의 마지막 자리수가 1인지 0인지만 확인하면 된다.

#include <stdio.h>

int main()
{
    printf("6 - 3: %d\n", 6 - 3);

    printf("6 - 3: %d\n"),               // 컴퓨터의 이진수 뺄셈법: 1의 보수 + 1
        0x00000006 + (~0x00000003 + 1)); // (2의 보수를 더하고 자리올림을 버림)

    // 나눗셈 연산 이용해 변수가 짝수인지 판별 
    int nInput = 9;
    if (nInput % 2)
        puts("홀수");
    else
        puts("짝수");

    // 비트 연산자를 활용해 더 빠르게 판별 가능
    if (nInput & 0x00000001)
        puts("홀수");
    else
        puts("짝수");

    return 0;
}

빼기를 반복하는 복잡한 연산인 나눗셈이 아닌 비트연산자 한번의 연산으로 계산효율적인 결과를 얻을 수 있다.

Reference
https://www.youtube.com/watch?v=\_HzIHU71dU8