표준 입력으로 두 정수(unsigned int)가 입력됩니다. 입력된 두 정수의 비트 연산 결과를 각 줄에 출력하는 프로그램을 만드세요(scanf
함수 호출 전에 문자열을 출력하면 안 됩니다).
- num1과 num2를 비트 XOR 연산
- num1과 num2를 비트 OR 연산
- num1과 num2를 비트 AND 연산
- num1을 비트 NOT 연산
출력 결과는 서식 지정자 %u를 사용하세요.
표준 입력
1 2
표준 출력
3
3
0
4294967294
정답
#include <stdio.h>
int main()
{
unsigned int num1, num2;
scanf("%u %u", &num1, &num2);
printf("%u\n", num1^num2);
printf("%u\n", num1 | num2);
printf("%u\n", num1&num2);
printf("%u\n", ~num1);
return 0;
}
풀이
두 정수(unsigned int)가 입력되어야 하므로, unsigne int형 변수 두 개를 선언하고, scanf 함수로 값을 입력받는다. 그다음, 조건 1번을
보면 num1과 num2가 XOR 연산해야 하므로 XOR 연산기호 ^를 사용해 XOR 연산한 값을 출력한다. 다음, 조건 2번을 보면 num1과 num2가 OR 연산해야 하므로 OR 연산기호 |를 사용해 OR 연산한 값을 출력한다. 다음, 조건 3번을 보면 num1과 num2가 AND 연산해야 하므로 AND 연산기호 &를 사용해 AND 연산한 값을 출력한다. 마지막으로, 조건 4번은 num1을 비트 NOT 연산해야 하므로 num1에 NOT 연산기호 ~를 사용해 NOT 연산한 값을 출력하면 된다.
참고
연산자 | 설명 |
& | 비트 AND |
| | 비트 OR |
^ | 비트 XOR |
~ | 비트 NOT |
<< | 비트를 왼쪽으로 시프트 |
>> | 비트를 오른쪽으로 시프트 |
&= | 비트 AND 연산 후 할당 |
|= | 비트 OR 연산 후 할당 |
^= | 비트 XOR 연산 후 할당 |
<<= | 비트를 왼쪽으로 시프트한 후 할당 |
>>= | 비트를 오른쪽으로 시프트한 후 할당 |
C언어 비트 연산자
'C' 카테고리의 다른 글
[C] C언어 코딩 도장 24.9 심사문제: 시프트 연산과 플래그 활용하기 (0) | 2022.04.27 |
---|---|
[C] C언어 코딩 도장 23.9 심사문제: 시프트 연산자 사용하기 (0) | 2022.04.26 |
[C] C언어 코딩 도장 22.8 심사문제: 불 자료형 사용하기 (0) | 2022.04.26 |
[C] C언어 코딩 도장 21.9 심사문제: 논리 연산자 사용하기 (0) | 2022.04.26 |
[C] C언어 코딩 도장 20.9 심사문제: 삼항 연산자 사용하기 (0) | 2022.04.26 |