2019년 8월 21일 수요일

데이터형의 최대값과 최소값 정리입니다.

최대값이 1012를 세번 더한 값이 되는 문제가 있었습니다.

#include <iostream>
using namespace std;
int main(void)
{
 long long int A,B,C;
 cin >> A >> B >> C;
 cout << A+B+C << endl;
 
 return 0;
}
이렇게 간단히 풀리는 문제였는데, 혼자만의 고민에 빠집니다.
이렇게 쉬운 문제일리 없어
long long int 형에도 담지못할 큰 수이니 문자열로 받아서 더하기 처리하도록 해결해야 하는것이겠군..
그러다 long long int의 최대값(LLONG_MAX)이 900경(9223372036854775807)을 넘는다는 것을 알고선 정리를 해놔야겠다고 생각했습니다.

각 데이터 형의 최대값과 최소값이 정의된 헤더파일 
limits.h   : 기본형 : char, int, short, long ...
float.h    : 실수형 : float, double
stdint.h  : 특수형 : int32_t, int64_t, ...
각 데이터 형의 크기/범위
데이터형사이즈비트수 범위 
char18-128~127
unsigned char180~255
short216-32768~32767
unsigned short2160~65535
int432-2147483648~2147483647
unsigned int4320~4294967295
long(32bit 환경)432-2147483648~2147483647
unsigned long(32bit 환경)4320~4294967295
long(64bit 환경)864-9223372036854775808~9223372036854775807
unsigned long(64bit 환경)8640~18446744073709551615
long long864-9223372036854775808~9223372036854775807
unsigned long long8640~18446744073709551615
32비트 64비트 환경에 따라 달라지기도하고, 그렇다고 외울 순 없고, 직접 헤더파일을 확인해봤는데 알아보기도 어렵습니다. 각 헤더에 정의된 데이터타입의 최대값, 최소값을 소스상에서 직접 확인할 수 있습니다.

#include <iostream>
using namespace std;
int main(void)
{
 cout << "INT_MAX   :" << INT_MAX << endl;
 cout << "LONG_MAX  :" << LONG_MAX << endl;
 cout << "LLONG_MAX :" << LLONG_MAX << endl;
 return 0;
}
출력
INT_MAX :2147483647
LONG_MAX :2147483647
LLONG_MAX :9223372036854775807
각 데이터 형의 최대값 최소값 정의명
데이터형최대값 최소값
charCHAR_MAXCHAR_MIN
unsigned charUCHAR_MAX0
shortSHRT_MAXSHRT_MIN
unsigned shortUSHRT_MAX0
intINT_MAXINT_MIN
unsigned intUINT_MAX0
long(32bit 환경)LONG_MAXLONG_MIN
unsigned long(32bit 환경)ULONG_MAX0
long(64bit 환경)LONG_MAXLONG_MIN
unsigned long(64bit 환경)ULONG_MAX0
long longLLONG_MAXLLONG_MIN
unsigned long longULLONG_MAX0
참고로 long long int 와 long long이 다른 것인줄 알았는데 long long (int)로 int가 생략한 표현이었습니다.
오늘도 기본을 다집니다.

댓글 없음:

댓글 쓰기

1、2、QWER! in OSAKA (大阪 2025/4/10(木) Yogibo META VALLEY)

https://www.creativeman.co.jp/event/qwer-osaka/ QWER - CREATIVEMAN PRODUCTIONS 主催:LIVET 企画:ソニー・ミュージックソリューションズ 招聘:クリエイティブマンプロダクション 制作協力:クリエイテ...