std::numeric_limits<T>::digits
static const int digits; | (до C++11) | |
static constexpr int digits; | (с C++11) |
Значение std::numeric_limits<T>::digits — это количество цифр в системе счисления с основанием radix, которые могут быть представлены типом T без изменения. Для целочисленных типов это количество битов, не считая знакового бита и битов заполнения (если таковые имеются). Для типов с плавающей точкой это количество цифр мантиссы (для реализаций IEC 559/IEEE 754, это количество цифр, хранимых для мантиссы плюс один, так как мантисса имеет неявную ведущую 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) |
| 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 |
См. также
|
[статическое] | основание системы счисления или целое основание, используемое для представления данного типа (публичная статическая константа-член) |
|
[статическое] | на единицу больше наименьшего отрицательного показателя степени основания, представляющего собой допустимое нормализованное значение с плавающей точкой (публичная статическая константа-член) |
|
[статическое] | на единицу больше наибольшего целого показателя степени основания, представляющего собой допустимое конечное значение с плавающей точкой (публичная статическая константа-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/types/numeric_limits/digits