# std::numeric_limits<T>::digits

< cpp‎ | types‎ | numeric limits

static const int digits; |  | (C++11 前)
static constexpr int digits; |  | (C++11 起)

std::numeric_limits<T>::digits 的值是能无更改地表示类型 `T` 的 radix 底位数。对于整数类型，这是不含符号位和填充位（若存在）的位数。对于浮点类型，这是尾数的位数（对于 IEC 559/IEEE 754 实现，这是存储尾数的位数加一，因为尾数有隐藏的前导 1 和二进制小数点）。

### 标准特化

`T` | std::numeric_limits<T>::digits 的值（假设无填充位）
/* 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 (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

### 参阅

radix [静态] | 给定类型的表示所用的基或整数底 (公开静态成员常量)
min_exponent [静态] | 底的该数次幂是合法正规浮点值的最小负数加一 (公开静态成员常量)
max_exponent [静态] | 底的该数次幂是合法有限浮点值的最大整数加一 (公开静态成员常量)