IT 지식

[자료형] 자료형 크기와 범위 / int와 long 차이점

히똔 2023. 1. 5. 23:08
728x90
반응형

인터넷 검색 결과 2의 N승 형태와 함께 나타난 범위를 찾기가 어려워서 내가 만들어보기로 했다.

자료형 크기와 범위

구분 자료형 크기(byte) 범위 범위(2ⁿ)
문자형 char
signed char
1 -128 ~ 127 -2 ~ 2 - 1
unsigned char 1 0 ~ 255 0 ~ 2 - 1
정수 short
short int
2 -32,768 ~ 32,767 -2¹⁵ ~ 2¹⁵ - 1
unsigned short
unsigned short int
2 0 ~ 65,535 0 ~ 2¹ - 1
int
signed int
4 -2,147,483,648 ~ 2,147,483,647 -2³¹ ~ 2³¹ - 1
unsigned
unsigned int
4 0 ~ 4,294,967,295 0 ~ 2³² - 1
long
long int
signed long
signed long int
4 -2,147,483,648 ~ 2,147,483,647 -2³¹ ~ 2³¹ - 1
unsigned long
unsigned long int
4 0 ~ 4,294,967,295 0 ~ 2³² - 1
long long
long long int
signed long long
signed long long int
8 –9,223,372,036,854,775,808
~ 9,223,372,036,854,775,807
-2³ ~ 2³ - 1
unsigned long long
unsigned long long int
8 0 ~ 18,446,744,073,709,551,615 0 ~ 2⁶⁴ - 1

 

int와 long의 차이점

int의 크기는 CPU 성능에 따라 바뀌기 때문에 
초기 16비트 CPU 사용 당시에는 int가 2바이트, long이 4바이트로 이용되었다.
하지만 32비트, 64비트 CPU가 개발되면서 오히려 int가 long보다 더 클 수도 있는 모순이 생겼다.
이를 보완하기 위해 32비트 이상의 아키텍처를 사용할 경우 4바이트로 고정하기로 했다.

long의 크기는 OS와 어플리케이션의 비트에 따라 달라진다.
윈도우 OS에서만 64비트 운영체제에서도 4바이트로 유지되고 나머지는 8바이트다.

그렇기 때문에 크로스플랫폼 개발시 long 사용은 자제하고 stdint.h에 포함된 int32_t와 int64_t 자료형을 사용하는 것이 좋다.

 

(타 블로그 글을 참고했습니다)
https://hackerpark.tistory.com/entry/C%EC%96%B8%EC%96%B4-int-%EC%99%80-long-%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%B4-%EB%8B%A4%EB%A5%BC%EA%B9%8C-short-short-int-int-long-int-long-long-long

 

[C언어] int 와 long 은 무엇이 다를까? (short, short int, int, long int, long, long long)

역사 컴퓨터는 지금의 32bit 64bit 가 아닌 8bit 16bit 가 주도했던 시절이 있었다. 당연하겠지만 64bit 가 아니라 32bit 도 처리할 수 없는 컴퓨터가 많았던 시절이었다. 당시에(아직까지도) CPU 시장을 주

hackerpark.tistory.com

728x90
반응형