C++ 백준 12813번
by 너나나
백준 12813번 www.acmicpc.net/problem/12813
문제 : 총 100,000 비트로 이루어진 이진수 A와 B가 주어진다. 이때, A & B, A | B, A ^ B, ~A, ~B를 한 값을 출력하는 프로그램을 작성하시오.
비트 연산에 대해서 이해만 하면 된다!!
&(AND)는 둘 다 1일 때 1
|(OR)은 하나만 1이면 1
^(XOR)은 둘이 다른 수일 때 1(정확하게는 1이 홀수개일 때 1이지만 여기서는 두 개만 비교하니까 이렇게 표현했다)
~는 모든 비트를 반전시킨다. 그러니까 1 -> 0, 0 -> 1이 된다!!
#include<iostream>
#include<cstring>
using namespace std;
char a[100001];
char b[100001];
int main() {
cin >> a >> b;
for (int i = 0; i < strlen(a); i++) { // &
if (a[i] == '1' && b[i] == '1')
cout << '1';
else cout << '0';
}
cout << '\n';
for (int i = 0; i < strlen(a); i++) { // |
if (a[i] == '1' || b[i] == '1')
cout << '1';
else cout << '0';
}
cout << '\n';
for (int i = 0; i < strlen(a); i++) { // ^
if (a[i] != b[i])
cout << '1';
else cout << '0';
}
cout << '\n';
for (int i = 0; i < strlen(a); i++) { // ~
if (a[i] == '1')
cout << '0';
else cout << '1';
}
cout << '\n';
for (int i = 0; i < strlen(a); i++) { // ~
if (b[i] == '1')
cout << '0';
else cout << '1';
}
cout << '\n';
}
'study > 알고리즘' 카테고리의 다른 글
C++ 백준 10815번 (0) | 2021.02.24 |
---|---|
C++ 백준 1202번 (0) | 2021.02.24 |
C++ 백준 2138번 (0) | 2021.02.16 |
C++ 백준 1080번 (0) | 2021.02.16 |
C++ 백준 11047번 (0) | 2021.02.15 |
블로그의 정보
공부 기록
너나나