표준 입력으로 정수가 입력됩니다. 입력된 정수를 왼쪽으로 20번, 오른쪽으로 4번 시프트 연산하여 결과를 출력하는 프로그램을 만드세요(scanf 함수 호출 전에 문자열을 출력하면 안 됩니다). 단, 정수형 변수는 unsigned long long으로 선언하고 출력 결과는 서식 지정자 %llu를 사용하세요.
표준 입력
1
표준 출력
65536
정답
#include <stdio.h>
int main()
{
unsigned long long int num1;
scanf("%llu", &num1);
printf("%llu", num1 << 16);
return 0;
}
풀이
값을 입력받을 정수형 변수를 문제 조건에 맞게 unsigned long long으로 선언하고 scanf 함수에 서식 지정자 %llu를 사용하여 값을 입력받는다. 그리고 입력받은 정수는 왼쪽으로 20번, 오른쪽으로 4번 시프트 연산해야 하므로 num1 << 20 >> 4 이런식으로 해도 되지만 결국 왼쪽으로 16번이므로 글쓴이는 num1 << 16한 값을 출력하도록 만들었다.
'C' 카테고리의 다른 글
[C] C언어 코딩 도장 25.7 심사문제: 괄호 사용하기 (0) | 2022.04.27 |
---|---|
[C] C언어 코딩 도장 24.9 심사문제: 시프트 연산과 플래그 활용하기 (0) | 2022.04.27 |
[C] C언어 코딩 도장 23.8 심사문제: 비트 논리 연산자 사용하기 (0) | 2022.04.26 |
[C] C언어 코딩 도장 22.8 심사문제: 불 자료형 사용하기 (0) | 2022.04.26 |
[C] C언어 코딩 도장 21.9 심사문제: 논리 연산자 사용하기 (0) | 2022.04.26 |