Doby's Lab

백준 12813번: 이진수 연산 (C++) 본문

PS/BOJ

백준 12813번: 이진수 연산 (C++)

도비(Doby) 2022. 4. 26. 22:31

https://www.acmicpc.net/problem/12813

 

12813번: 이진수 연산

총 100,000 비트로 이루어진 이진수 A와 B가 주어진다. 이때, A & B, A | B, A ^ B, ~A, ~B를 한 값을 출력하는 프로그램을 작성하시오.

www.acmicpc.net


Solved By: Implementation, Bitwise Operation

 

비트 연산(Bitwise Operation)을 이해하기 위해 풀어본 문제였습니다.

 

#include <iostream>
using namespace std;

string a, b;

int main(){
    cin >> a >> b;
    
    // AND
    for(int i = 0; i < a.length(); i++){
        if(a[i] == '1' && b[i] == '1'){
            cout << 1;
        }
        else cout << 0;
    }
    cout << '\n';
    
    // OR
    for(int i = 0; i < a.length(); i++){
        if(a[i] == '1' || b[i] == '1'){
            cout << 1;
        }
        else cout << 0;
    }
    cout << '\n';
    
    // XOR
    for(int i = 0; i < a.length(); i++){
        if(a[i] != b[i]){
            cout << 1;
        }
        else cout << 0;
    }
    cout << '\n';
    
    // NOT a
    for(int i = 0; i < a.length(); i++){
        if(a[i] == '1'){
            cout << 0;
        }
        else cout << 1;
    }
    cout << '\n';
    
    // NOT b
    for(int i = 0; i < a.length(); i++){
        if(b[i] == '1'){
            cout << 0;
        }
        else cout << 1;
    }
    cout << '\n';
    return 0;
}
728x90