温州网站改版哪家好,电商设计网站素材,辽宁建设工程信息网查询系统,建设网络强国要有什么C 数值极限接口
参阅 std::numeric_limits 接口 定义于头文件 cstdint PTRDIFF_MIN (C11) std::ptrdiff_t 类型对象的最小值 (宏常量) PTRDIFF_MAX (C11) std::ptrdiff_t 类型对象的最大值 (宏常量) SIZE_MAX (C11) std::size_t 类型对象的最大值 (宏常量) SIG_ATOMI…C 数值极限接口
参阅 std::numeric_limits 接口 定义于头文件 cstdint PTRDIFF_MIN (C11) std::ptrdiff_t 类型对象的最小值 (宏常量) PTRDIFF_MAX (C11) std::ptrdiff_t 类型对象的最大值 (宏常量) SIZE_MAX (C11) std::size_t 类型对象的最大值 (宏常量) SIG_ATOMIC_MIN (C11) std::sig_atomic_t 类型对象的最小值 (宏常量) SIG_ATOMIC_MAX (C11) std::sig_atomic_t 类型对象的最大值 (宏常量) WCHAR_MIN (C11) wchar_t 类型对象的最小值 (宏常量) WCHAR_MAX (C11) wchar_t 类型对象的最大值 (宏常量) WINT_MIN (C11) std::wint_t 类型对象的最小值 (宏常量) WINT_MAX (C11) std::wint_t 类型对象的最大值 (宏常量) 整数类型极限 定义于头文件 climits CHAR_BIT 字节的位数 (宏常量) MB_LEN_MAX 多字节字符的最大字节数 (宏常量) CHAR_MIN char 的最小值 (宏常量) CHAR_MAX char 的最大值 (宏常量) SCHAR_MINSHRT_MININT_MINLONG_MINLLONG_MIN (C11) 分别为 signed char、short、int、long 及 long long 的最小值 (宏常量) SCHAR_MAXSHRT_MAXINT_MAXLONG_MAXLLONG_MAX (C11) 分别为 signed char、short、int、long 及 long long 的最大值 (宏常量) UCHAR_MAXUSHRT_MAXUINT_MAXULONG_MAXULLONG_MAX (C11) 分别为 unsigned char、unsigned short、unsigned int、 unsigned long 及 unsigned long long 的最大值 (宏常量) 注意这些常量除了 CHAR_BIT 和 MB_LEN_MAX 都要求其类型匹配整数提升的结果一如应用于它们所描述的类型的对象 CHAR_MAX 可能拥有类型 int 或 unsigned int 但决非 char 。同样地 USHRT_MAX 可能不拥有无符号类型其类型可能是 int 。 浮点类型极限 定义于头文件 cfloat FLT_RADIX 所有三种浮点类型的表示所用的基数整数底 (宏常量) DECIMAL_DIG (C11) 从 long double 转换到至少有 DECIMAL_DIG 位数字的十进制表示再转换回 long double 为恒等转换这是序列化/反序列化 long double 所要求的十进制精度参阅 std::numeric_limits::max_digits10 (宏常量) FLT_DECIMAL_DIGDBL_DECIMAL_DIGLDBL_DECIMAL_DIG (C17) 从 float/double/long double 转换到至少有 FLT_DECIMAL_DIG/DBL_DECIMAL_DIG/LDBL_DECIMAL_DIG 位数字的十进制再转换回原类型为恒等转换这是序列化/反序列化浮点值所要求的十进制精度参阅 std::numeric_limits::max_digits10。分别定义为至少 6、10 和 10对于 IEEE float 为 9对于 IEEE double 为 17。 (宏常量) FLT_MINDBL_MINLDBL_MIN 分别为 float、double 与 long double 的最小规格化正数值 (宏常量) FLT_TRUE_MINDBL_TRUE_MINLDBL_TRUE_MIN (C17) 分别为 float、double 与 long double 的最小正数值 (宏常量) FLT_MAXDBL_MAXLDBL_MAX 分别为 float、double 与 long double 的最大值 (宏常量) FLT_EPSILONDBL_EPSILONLDBL_EPSILON 分别为 1.0 和 float、double 及 long double 的下一个可表示值之差 (宏常量) FLT_DIGDBL_DIGLDBL_DIG 保证能在文本→ float/double/long double →文本的往返转换中保留而不会因舍入或溢出发生改变的的十进制位数解释参阅 std::numeric_limits::digits10 (宏常量) FLT_MANT_DIGDBL_MANT_DIGLDBL_MANT_DIG 分别为能无精度损失地表示成 float、double 及 long double 的基数 FLT_RADIX 的数字位数 (宏常量) FLT_MIN_EXPDBL_MIN_EXPLDBL_MIN_EXP 分别为能够使FLT_RADIX 的该整数减一次幂为规格化的 float、double 与 long double 的最小负整数 (宏常量) FLT_MIN_10_EXPDBL_MIN_10_EXPLDBL_MIN_10_EXP 分别为能够使 10 的该整数减一次幂为规格化的 float、double 与 long double 的最小负整数 (宏常量) FLT_MAX_EXPDBL_MAX_EXPLDBL_MAX_EXP 分别为能够使 FLT_RADIX 的该整数减一次幂为可表示的有限的 float、double 与 long double 的最大正整数 (宏常量) FLT_MAX_10_EXPDBL_MAX_10_EXPLDBL_MAX_10_EXP 分别为能够使 10 的该整数减一次幂为可表示的有限的 float、double 与 long double 的最大正整数 (宏常量) FLT_ROUNDS 浮点算术的默认舍入模式 (宏常量) FLT_EVAL_METHOD (C11) 指定进行所有算术运算所用的精度 (宏常量) FLT_HAS_SUBNORMDBL_HAS_SUBNORMLDBL_HAS_SUBNORM (C17) 指明类型是否支持非正规数值-1 为不确定0 为不支持1 为支持。 (宏常量) 调用示例
#include stdio.h
#include stdint.h
#include limits.h
#include float.hint main()
{//std::ptrdiff_t 类型对象的最小值printf(PTRDIFF_MIN: %d\n, PTRDIFF_MIN);//std::ptrdiff_t 类型对象的最大值printf(PTRDIFF_MAX: %d\n, PTRDIFF_MAX);//std::size_t 类型对象的最大值printf(SIZE_MAX: %d\n, SIZE_MAX);//std::sig_atomic_t 类型对象的最小值printf(SIG_ATOMIC_MIN: %d\n, SIG_ATOMIC_MIN);//std::sig_atomic_t 类型对象的最大值printf(SIG_ATOMIC_MAX: %d\n, SIG_ATOMIC_MAX);//wchar_t 类型对象的最小值printf(WCHAR_MIN: %d\n, WCHAR_MIN);//wchar_t 类型对象的最大值printf(WCHAR_MAX: %d\n, WCHAR_MAX);//std::wint_t 类型对象的最小值printf(WINT_MIN: %d\n, WINT_MIN);//std::wint_t 类型对象的最大值printf(WINT_MAX: %d\n, WINT_MAX);printf(\n);//整数类型极限//字节的位数printf(CHAR_BIT: %d\n, CHAR_BIT);//多字节字符的最大字节数printf(MB_LEN_MAX: %d\n, MB_LEN_MAX);//char 的最小值printf(CHAR_MIN: %d\n, CHAR_MIN);//char 的最大值printf(CHAR_MAX: %d\n, CHAR_MAX);printf(\n);//分别为 signed char、short、int、long 及 long long 的最小值printf(SCHAR_MIN: %d\n, SCHAR_MIN);printf(SHRT_MIN: %d\n, SHRT_MIN);printf(INT_MIN: %d\n, INT_MIN);printf(LONG_MIN: %I32d\n, LONG_MIN);printf(LLONG_MIN: %I64d\n, LLONG_MIN);printf(\n);//分别为 signed char、short、int、long 及 long long 的最大值printf(SCHAR_MAX: %d\n, SCHAR_MAX);printf(SHRT_MAX: %d\n, SHRT_MAX);printf(INT_MAX: %d\n, INT_MAX);printf(LONG_MAX: %I32d\n, LONG_MAX);printf(LLONG_MAX: %I64d\n, LLONG_MAX);printf(\n);//分别为 unsigned char、unsigned short、unsigned int、//unsigned long 及 unsigned long long 的最大值printf(UCHAR_MAX: %d\n, UCHAR_MAX);printf(USHRT_MAX: %d\n, USHRT_MAX);printf(UINT_MAX: %d\n, UINT_MAX);printf(ULONG_MAX: %I32u\n, ULONG_MAX);printf(ULLONG_MAX: %I64u\n, ULLONG_MAX);printf(\n);//浮点类型极限//所有三种浮点类型的表示所用的基数整数底printf(FLT_RADIX: %d\n, FLT_RADIX);//从 long double 转换到至少有 DECIMAL_DIG 位数字的十进制表示//再转换回 long double 为恒等转换这是序列化/反序列化 long double 所要求的十进制精度//参阅 std::numeric_limits::max_digits10printf(DECIMAL_DIG: %d\n, DECIMAL_DIG);printf(FLT_DECIMAL_DIG:%d\n, FLT_DECIMAL_DIG);printf(DBL_DECIMAL_DIG:%d\n, DBL_DECIMAL_DIG);printf(LDBL_DECIMAL_DIG:%d\n, LDBL_DECIMAL_DIG);printf(\n);//分别为 float、double 与 long double 的最小规格化正数值printf(FLT_MIN: %f\n, FLT_MIN);printf(DBL_MIN: %f\n, DBL_MIN);printf(LDBL_MIN: %lf\n, LDBL_MIN);printf(\n);//分别为 float、double 与 long double 的最小正数值printf(FLT_TRUE_MIN: %f\n, FLT_TRUE_MIN);printf(DBL_TRUE_MIN: %f\n, DBL_TRUE_MIN);printf(LDBL_TRUE_MIN: %lf\n, LDBL_TRUE_MIN);printf(\n);//分别为 float、double 与 long double 的最大值printf(FLT_MAX: %f\n, FLT_MAX);printf(DBL_MAX: %f\n, DBL_MAX);printf(LDBL_MAX: %lf\n, LDBL_MAX);printf(\n);//分别为 1.0 和 float、double 及 long double 的下一个可表示值之差printf(FLT_EPSILON: %f\n, FLT_EPSILON);printf(DBL_EPSILON: %f\n, DBL_EPSILON);printf(LDBL_EPSILON: %lf\n, LDBL_EPSILON);printf(\n);//保证能在文本→ float/double/long double →文本的往返转换中保留而不会//因舍入或溢出发生改变的的十进制位数解释参阅 std::numeric_limits::digits10printf(FLT_DIG: %d\n, FLT_DIG);printf(DBL_DIG: %d\n, DBL_DIG);printf(LDBL_DIG: %d\n, LDBL_DIG);printf(\n);//分别为能无精度损失地表示成 float、double 及 long double 的基数 FLT_RADIX 的数字位数printf(FLT_MANT_DIG: %d\n, FLT_MANT_DIG);printf(DBL_MANT_DIG: %d\n, DBL_MANT_DIG);printf(LDBL_MANT_DIG:%d\n, LDBL_MANT_DIG);printf(\n);//分别为能够使FLT_RADIX 的该整数减一次幂为规格化的 float、double 与 long double 的最小负整数printf(FLT_MIN_EXP: %d\n, FLT_MIN_EXP);printf(DBL_MIN_EXP: %d\n, DBL_MIN_EXP);printf(LDBL_MIN_EXP: %d\n, LDBL_MIN_EXP);printf(\n);//分别为能够使 10 的该整数减一次幂为规格化的 float、double 与 long double 的最小负整数printf(FLT_MIN_10_EXP:%d\n, FLT_MIN_10_EXP);printf(DBL_MIN_10_EXP:%d\n, DBL_MIN_10_EXP);printf(LDBL_MIN_10_EXP:%d\n, LDBL_MIN_10_EXP);printf(\n);//分别为能够使 FLT_RADIX 的该整数减一次幂为可表示的有限的 float、double 与 long double 的最大正整数printf(FLT_MAX_EXP: %d\n, FLT_MAX_EXP);printf(DBL_MAX_EXP: %d\n, DBL_MAX_EXP);printf(LDBL_MAX_EXP: %d\n, LDBL_MAX_EXP);printf(\n);//分别为能够使 10 的该整数减一次幂为可表示的有限的 float、double 与 long double 的最大正整数printf(FLT_MAX_10_EXP: %d\n, FLT_MAX_10_EXP);printf(DBL_MAX_10_EXP: %d\n, DBL_MAX_10_EXP);printf(LDBL_MAX_10_EXP:%d\n, LDBL_MAX_10_EXP);printf(\n);//浮点算术的默认舍入模式printf(FLT_ROUNDS: %d\n, FLT_ROUNDS);//指定进行所有算术运算所用的精度printf(FLT_EVAL_METHOD:%d\n, FLT_EVAL_METHOD);//指明类型是否支持非正规数值-1 为不确定0 为不支持1 为支持。printf(FLT_HAS_SUBNORM:%d\n, FLT_HAS_SUBNORM);printf(DBL_HAS_SUBNORM:%d\n, DBL_HAS_SUBNORM);printf(LDBL_HAS_SUBNORM:%d\n, LDBL_HAS_SUBNORM);printf(\n);return 0;
}
输出
PTRDIFF_MIN: -2147483648
PTRDIFF_MAX: 2147483647
SIZE_MAX: -1
SIG_ATOMIC_MIN: -2147483648
SIG_ATOMIC_MAX: 2147483647
WCHAR_MIN: 0
WCHAR_MAX: 65535
WINT_MIN: 0
WINT_MAX: 65535CHAR_BIT: 8
MB_LEN_MAX: 5
CHAR_MIN: -128
CHAR_MAX: 127SCHAR_MIN: -128
SHRT_MIN: -32768
INT_MIN: -2147483648
LONG_MIN: -2147483648
LLONG_MIN: -9223372036854775808SCHAR_MAX: 127
SHRT_MAX: 32767
INT_MAX: 2147483647
LONG_MAX: 2147483647
LLONG_MAX: 9223372036854775807UCHAR_MAX: 255
USHRT_MAX: 65535
UINT_MAX: -1
ULONG_MAX: 4294967295
ULLONG_MAX: 18446744073709551615FLT_RADIX: 2
DECIMAL_DIG: 21
FLT_DECIMAL_DIG:9
DBL_DECIMAL_DIG:17
LDBL_DECIMAL_DIG:21FLT_MIN: 0.000000
DBL_MIN: 0.000000
LDBL_MIN: -0.000000FLT_TRUE_MIN: 0.000000
DBL_TRUE_MIN: 0.000000
LDBL_TRUE_MIN: 0.000000FLT_MAX: 340282346638528860000000000000000000000.000000
DBL_MAX: 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000
LDBL_MAX: -1.#QNAN0FLT_EPSILON: 0.000000
DBL_EPSILON: 0.000000
LDBL_EPSILON: -0.000000FLT_DIG: 6
DBL_DIG: 15
LDBL_DIG: 18FLT_MANT_DIG: 24
DBL_MANT_DIG: 53
LDBL_MANT_DIG:64FLT_MIN_EXP: -125
DBL_MIN_EXP: -1021
LDBL_MIN_EXP: -16381FLT_MIN_10_EXP:-37
DBL_MIN_10_EXP:-307
LDBL_MIN_10_EXP:-4931FLT_MAX_EXP: 128
DBL_MAX_EXP: 1024
LDBL_MAX_EXP: 16384FLT_MAX_10_EXP: 38
DBL_MAX_10_EXP: 308
LDBL_MAX_10_EXP:4932FLT_ROUNDS: 1
FLT_EVAL_METHOD:2
FLT_HAS_SUBNORM:1
DBL_HAS_SUBNORM:1
LDBL_HAS_SUBNORM:1