(출처: https://ko.cppreference.com/w/cpp/language/types ) (LP32, ILP32, LLP64, LP64는 data model을 나타내며, 글 맨 아래 '참고'에 정리해둠) C++ 정수형 데이터 타 입들 C++ standard를 기준으로 short - 최소 16비트 int - 최소 16비트 long int - 최소 32비트 long long int - 최소 64비트 (C++ standard는 정수형 데이터 타입의 명확한 크기를 정해두지 않았다. 다만 최소한의 하한선만 정해놓았다) 일반적으로 short 는 16 비트 , int 는 32 비트로 알고 있다 . 그래서 int 는 -2^31 ~ 2^31 – 1 범위의 정수를 표현할 수 있고 , 이보다 크거나 작은 정수를 표현하기 위해서는 비트수가 더 필요하다 . 그러면 long 을 써야하나 long long 을 써야하나 ? 확실한 방법은 long long int 를 쓰는 것이다 . C++ 표준을 보면 long int 는 최소 32 비트를 보장한다고 한다 . -2^31 ~ 2^31 – 1 범위를 넘어서는 정수를 표현하기 위해서는 C++ 표준 기준으로 최소 64 비트를 보장하는 long long int 를 써야한다 . (long int를 쓸 경우, 윈도우 환경에서는 int와 똑같은 범위까지만 표현할 수 있다) // 나만의 생각 시작 그러면 long int 는 필요 없는 것 아닌가 ? ILP32, LLP64, LP64 data model만 고려한다면 그렇다고 볼 수 있지 않을까 싶다. 왜냐하면 위 세 개의 data model 에서는 int 와 long int 의 비트수가 같거나, long int 와 long long int 의 비트수가 같기 때문이다 . long int가 int
댓글
댓글 쓰기