std::numeric_limits<T>::digits
cppreference.net에서
static const int digits;
|
(C++11까지) | |
static constexpr int digits;
|
(C++11부터) | |
std::numeric_limits<T>::digits의 값은 radix 진수에서 T 타입이 변경 없이 표현할 수 있는 자릿수입니다. 정수 타입의 경우, 이는 부호 비트와 패딩 비트(있는 경우)를 제외한 비트 수입니다. 부동소수점 타입의 경우, 이는 가수의 자릿수입니다 (IEC 559/IEEE 754 구현의 경우, 가수에 저장된 자릿수에 1을 더한 값입니다. 가수는 암시적인 선행 1과 이진 소수점을 가지기 때문입니다).
표준 특수화
T
|
std::
numeric_limits
<
T
>
::
digits
의 값
( 패딩 비트 가 없다고 가정할 때) |
| /* 비특수화 */ | 0 |
| bool | 1 |
| char | CHAR_BIT - std:: numeric_limits < char > :: is_signed |
| signed char | CHAR_BIT - 1 |
| unsigned char | CHAR_BIT |
| wchar_t |
CHAR_BIT
*
sizeof
(
wchar_t
)
- std:: numeric_limits < wchar_t > :: is_signed |
| char8_t (C++20 이후) | CHAR_BIT |
| char16_t (C++11부터) | CHAR_BIT * sizeof ( char16_t ) |
| char32_t (C++11 이후) | CHAR_BIT * sizeof ( char32_t ) |
| short | CHAR_BIT * sizeof ( short ) - 1 |
| unsigned short | CHAR_BIT * sizeof ( short ) |
| int | CHAR_BIT * sizeof ( int ) - 1 |
| unsigned int | CHAR_BIT * sizeof ( int ) |
| long | CHAR_BIT * sizeof ( long ) - 1 |
| unsigned long | CHAR_BIT * sizeof ( long ) |
| long long (C++11부터) | CHAR_BIT * sizeof ( long long ) - 1 |
| unsigned long long (C++11 이후) | CHAR_BIT * sizeof ( long long ) |
| float | FLT_MANT_DIG |
| double | DBL_MANT_DIG |
| long double | LDBL_MANT_DIG |
참고 항목
|
[static]
|
주어진 타입의 표현에 사용되는 기수 또는 정수 베이스
(public static member constant) |
|
[static]
|
유효한 정규화된 부동소수점 값인 기수의 가장 작은 음의 거듭제곱보다 1 큰 값
(public static member constant) |
|
[static]
|
유효한 유한 부동소수점 값인 기수의 가장 큰 정수 거듭제곱보다 1 큰 값
(public static member constant) |