std::numeric_limits<T>::digits (3) - Linux Manuals
std::numeric_limits<T>::digits: std::numeric_limits<T>::digits
NAME
std::numeric_limits<T>::digits - std::numeric_limits<T>::digits
Synopsis
static const int digits;      (until C++11)
static constexpr int digits;  (since C++11)
The value of std::numeric_limits<T>::digits is the number of digits in base-radix that can be represented by the type T without change. For integer types, this is the number of bits not counting the sign bit and the padding bits (if any). For floating-point types, this is the number of digits in the mantissa.
Standard specializations
T                     value of std::numeric_limits<T>::digits (assuming no padding bits)
/* non-specialized */ 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               CHAR_BIT
char16_t              CHAR_BIT*sizeof(char16_t)
char32_t              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             CHAR_BIT*sizeof(long long)-1
unsigned long long    CHAR_BIT*sizeof(long long)
float                 FLT_MANT_DIG
double                DBL_MANT_DIG
long double           LDBL_MANT_DIG
See also
 
 
 
 
 
 
 
radix        the radix or integer base used by the representation of the given type
 
[static]
min_exponent one more than the smallest negative power of the radix that is a valid normalized floating-point value
 
[static]
max_exponent one more than the largest integer power of the radix that is a valid finite floating-point value
 
[static]