본문 바로가기
코딩/CodeUp

코드업 1028 : [기초-데이터형] 정수 1개 입력받아 그대로 출력하기2

by jsjin 2023. 6. 4.
728x90

정수 1개를 입력받아 그대로 출력해보자.
(단, 입력되는 정수의 범위는 0 ~ 4,294,967,295 이다.)

#include <stdio.h>

int main(){
    unsigned int n;
    scanf("%u", &n);
    printf("%u", n);
}

 

int는 32비트(8바이트)의 크기를 가지게 된다.

int의 첫 비트에는 값이 +인지 -인지를 나타내는 부호 비트가 있다.

따라서 부호를 제외하고 사용할 수 있는 비트는 31개이므로

표현할 수 있는 값은  -2^31 ~ +2^31 -1 이다. (-2,147,483,648 ~ 2,147,483,647)

int 구조

이때 int 앞에 unsigned를 붙이면 부호 비트를 사용하지 않으므로

0 ~ 2^32 -1 (0~4,294,967,295) 의 값을 나타낼 수 있다.

 

%u는 부호가 없는 10진수의 형식 지정자이다.

 

다른 방법으로는 int 보다 크기가 큰 long long int(64비트)를 사용하는 방법이다.

#include<stdio.h>
int main()
{
    long long int n;
    scanf("%lld", &n);
    printf("%lld", n);
    return 0;
}
728x90