👨🏻‍💻 programming/◽ 운영체제

(OS) 자료형, 데이터 크기 및 정수 제한 <limits>

핑크코냥 2022. 7. 6. 16:34
728x90

C 표준 헤더 파일 <limits.h>에 정의되어 있습니다. C++ 표준 라이브러리 헤더 <limits>에는 <limits.h>를 비롯한 <climits>가 포함

CHAR_BIT 비트 필드가 없는 가장 작은 변수의 비트 수입니다. 8
SCHAR_MIN signed char 형식 변수의 최소값입니다. -128
SCHAR_MAX signed char 형식 변수의 최대값입니다. 127
UCHAR_MAX unsigned char 형식 변수의 최대값입니다. 255(0Xff)
CHAR_MIN char 형식 변수의 최소값입니다. –128, /J 옵션이 사용된 경우 0
CHAR_MAX char 형식 변수의 최대값입니다. 127, /J 옵션이 사용된 경우, 255
MB_LEN_MAX 여러 문자 상수에서의 최대 바이트 수입니다. 5
SHRT_MIN short 형식 변수의 최소값입니다. -32768
SHRT_MAX short 형식 변수의 최대값입니다. 32767
USHRT_MAX unsigned short 형식 변수의 최대값입니다. 65535(0xffff)
INT_MIN int 형식 변수의 최소값입니다. -2147483647 - 1
INT_MAX int 형식 변수의 최대값입니다. 2147483647
UINT_MAX unsigned int 형식 변수의 최대값입니다. 4294967295(0xffffffff)
LONG_MIN long 형식 변수의 최소값입니다. -2147483647 - 1
LONG_MAX long 형식 변수의 최대값입니다. 2147483647
ULONG_MAX unsigned long 형식 변수의 최대값입니다. 4294967295(0xffffffff)
LLONG_MIN long long 형식 변수의 최소값입니다. -9,223,372,036,854,775,807 - 1
LLONG_MAX long long 형식 변수의 최대값입니다. 9,223,372,036,854,775,807
ULLONG_MAX unsigned long long 형식 변수의 최대값입니다. 18,446,744,073,709,551,615 (0xffffffffffffffff)

값이 최대 정수 표현을 초과하는 경우 Microsoft컴파일러에서 오류가 발생한다. 

 

종류 자료형 메모리 크기
(byte == 8bit)
값의 범위
정수형 char 1 byte (2의 8승) -128 (2의 7승) ~ 127 (2의 7승  - 1)
int 4 byte (2의 32승) -2,147,483,648 (2의 31승) ~
+ 2,147,483,647 (2의 31승 - 1)
unsigned int 4 byte  0 ~ + 4,294,967,295
long 4 byte  -2,147,483,648 ~ + 2,147,483,647
long long int 8 byte  -9,223,372,036,854,775,808  ~
+9,223,372,036,854,775,807
short 2 byte  - 37,768 ~ + 32,767
실수형 float 4 byte  유효자리수 : 7 (1.175494e-38~3.4.402823e+38)
double 8 byte  유효자리수 : 16 (2.225074e-308~1.797693e+308)
long double 8 byte 유효자리수 : 16 (2.225074e-308~1.797693e+308)

※ 여기서 항상 양수 부분에 -1이 되는 이유는 0을 포함하기 때문이다.


데이터 크기

1 BYTE(바이트) = 8 BIT

1 KB(킬로바이트) = 1024 BYTE

1 MB(메가바이트) = 1024 KB

1 GB(기가바이트) = 1024 MB

1 TB(테라바이트) =1024 GB

※ 백준 문제에서 많이 요구하는 메모리 제한 256MB는 int(8byte)를 최대 몇개 생성 할 수 있는걸까?
- 약 33,000,000개 생성 할 수 있습니다. 

728x90