std::numeric_limits<T>::digits
From cppreference.com
static const int digits; |
(C++11まで) | |
| static constexpr int digits; |
(C++11以降) | |
std::numeric_limits<T>::digits の値は、型Tで変更なく表現できる基数radix の桁数です。整数型の場合、これは符号ビットと(もしあれば)パディングビットを除くビット数です。浮動小数点型の場合、これは仮数部の桁数です(IEC 559/IEEE 754 実装では、仮数部には暗黙の先頭の1と小数点が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) |