std::numeric_limits<T>::digits
来自cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev ">
</tbody><tbody>
</tbody>
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 的值(假设无填充位)
|
/* 未特化 */
|
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 |
参阅
[静态] |
给定类型的表示所用的基或整数底 (公开静态成员常量) |
[静态] |
底的该数次幂是合法正规浮点数的最小负数加一 (公开静态成员常量) |
[静态] |
底的该数次幂是合法有限浮点数的最大整数加一 (公开静态成员常量) |