컴퓨터 최대 정수
컴퓨터가 표현 가능한 최대 정수
2,147,483,647 게임을 좋아하는 사람이라면 한번 쯤은 보거나 들었을 숫자이다. 적을 때릴 때의 데미지나 소지한 아이템의 최대치 등 일정한 수 이상으로 값이 넘어가지 않을 때가 있다. 그 값이 위의 숫자라면 개발자가 지정한 자료형이 원인이 된다.
1. int 자료형 크기
- int 자료형이 데이터를 담을 수 있는 공간의 크기는 4byte이다.
-
int로 표현 가능한 최대 정수
32bit 운영체제 기준
32bit의 메모리 공간을 사용하여 정수를 표현한다.
가장 왼쪽의 1비트는 부호비트로 0일 때 양수 1일 때 음수를 나타낸다. 남은 31bit에 0과 1로 채워 이진수로 표현한다.따라서 int는 1111111111111111111111111111111이 표현할 수 있는 최대 정수이고 십진법으로 바꾸면 2147483647가 나온다.
2. 더 큰 정수를 표현하기 위해서
-
정수를 어떻게 표현할 것인가에 따라 보다 큰 정수를 표현할 수 있다.
-
unsigned int
기본적으로 int의 앞에는 signed가 생략되어 표현되는데 이는 부호가 있는 정수 즉, 음수와 양수를 다 사용할 때 쓰는 자료형이다.unsigned int는 부호를 사용하지 않는 자료형으로 32bit를 모두 숫자를 표현하는데 사용할 수 있기 때문에 11111111111111111111111111111111까지의 정수를 표현할 수 있게 된다.
-
long long int
int는 가장 효율적으로 처리될 수 있는 자료형이다.
가장 효율적으로 처리된다는 의미는 컴퓨터가 한번에 처리할 수 있는 연산량으로 CPU의 발전에 따라 달라지게 된다. 32bit가 기본이 된 현재는 int 또한 32bit가 된다.long int가 만들어질 당시에는 16bit가 기본이였기 때문에 더 큰 정수형을 담기 위해 만든 long int는 int의 두 배크기인 32bit였다. 하지만 CPU의 발전으로 기본 연산량이 32bit가 된 시점에서 더 큰 정수를 담기 위해 long long int를 만들었고 이는 현재 int의 두 배 크기인 64bit이다.
long long int도 signed과 unsigned으로 구분하여 사용가능하다.
자료형 표
|타입|크기|범위|
|:——–:|:—-:|:——–:|
|(signed) int|4byte|-2147483648 ~ 2147483647|
|unsigned int|4byte|0 ~ 4294967295|
|(signed) long long int|8byte|-9223372036854775808 ~ 9223372036854775807|
|unsigned long long int|8byte|0 ~ 18446744073709551615|