본문 바로가기
Programming/C++

C++에서 비트단위논리연산을 하는 방법 | C++

by 혀코 2020. 9. 23.

안녕하세요. 혀코입니다. 

이번 시간에는 C++에서 비트단위논리연산을 하는 방법에 대해서 알아보겠습니다.

참고로 비트단위 논리연산자로는 다음과 같은 기호들이 있습니다.

~ : bitwise not
& : bitwise and
| : bitwise or
^ : bitwise xor
<< : bitwise left shift
>> : bitwise right shift

 

# 입력된 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력하는 방법

정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력하려면 ~ 기호를 사용합니다.

1을 입력하면 1은 32비트 2진수로 표현하면, 00000000 00000000 00000000 00000001 이 되고, 
~1은 11111111 11111111 11111111 11111110 이 되는데 이것은 -2를 의미합니다.

#include <iostream>

int main() {
    int a;
    scanf("%d", &a);
    printf("%d", ~a);
    return 0;
}

 

# 입력된 두 개의 정수를 비트단위로 and 연산한 후 그 결과를 정수로 출력하는 방법

비트단위로 and 연산한 후 그 결과를 정수로 출력하려면, & 기호를 사용합니다.

#include <iostream>

int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d", a & b);
    return 0;
}

 

# 입력된 두 개의 정수를 비트단위로 or 연산한 후 그 결과를 정수로 출력하는 방법

비트단위로 or 연산한 후 그 결과를 정수로 출력하려면, | 기호를 사용합니다.

#include <iostream>

int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d", a | b);
    return 0;
}

 

# 입력된 두 개의 정수를 비트단위로 xor 연산한 후 그 결과를 정수로 출력하는 방법

비트단위로 xor 연산한 후 그 결과를 정수로 출력하려면 ^ 기호를 사용합니다.

#include <iostream>

int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d", a ^ b);
    return 0;
}

 

이렇게 C++에서 비트단위논리연산을 하는 방법에 대해서 알아봤습니다.

유용하셨다면, 공감과 구독 부탁 드립니다.

감사합니다. :)

댓글