C++标准库 Numeric limits climits cfloat cstdint

来源:互联网 发布:大数据修炼系统女主 编辑:程序博客网 时间:2024/06/04 18:46
该系列博文主要参考自 cppreference.com 和 cplusplus.com
由于博主水平有限,内容仅供参考

climits

该头文件中定义了许多宏

CHAR_BIT
一个byte的bit数

MB_LEN_MAX
一个多字节字符所占的最大字节数

CHAR_MIN, SCHAR_MIN, SHRT_MIN, INT_MIN, LONG_MIN, LLONG_MIN(c++11)
分别为char, signed char, short, int, long, long long类型的最小值

CHAR_MAX, SCHAR_MAX, SHRT_MAX, INT_MAX, LONG_MAX, LLONG_MAX(c++11), UCHAR_MAX, USHRT_MAX, UINT_MAX, ULONG_MAX, ULLONG_MAX(c++11)
分别为char, signed char, short, int, long, long long, unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long类型的最大值


cfloat

该头文件中也是许多宏

FLT_RADIX
三个(float, double 和 long double)浮点类型的底数

FLT_MIN, DBL_MIN, LDBL_MIN, FLT_MAX, DBL_MAX, LDBL_MAX
float, double 和 long double 类型的最小值和最大值

FLT_EPSILON, DBL_EPSILON, LDBL_EPSILON
三中类型所能表示的大于1的最小值与1之间的差值

FLT_DIG, DBL_DIG, LDBL_DIG
在不丢失精度的情况下,这三种类型可以表示的小数位数

FLT_MANT_DIG, DBL_MANT_DIG, LDBL_MANT_DIG
在不丢失精度的情况下,这三种类型可以表示的以FLT_RADIX为底的位数

FLT_MIN_EXP, DBL_NIN_EXP, LDBL_MIN_EXP, FLT_MAX_EXP, DBL_MAX_EXP, LDBL_MAX_EXP
可以被表示的以FLT_RADIX为底数的指数,三种类型幂的最小值

FLT_MIN_10_EXP, DBL_NIN_10_EXP, LDBL_MIN_10_EXP, FLT_MAX_10_EXP, DBL_MAX_10_EXP, LDBL_MAX_10_EXP
可以被表示的以10为底数的指数,三种类型幂的最小值

FLT_ROUNDS
浮点运算的默认舍入模式

FLT_EVAL_METHOD(c++11)
指定浮点运算的精度

DECIMAL_DIG(c++11)
在不丢失精度的情况下,转换为long double 类型的小数位数



cstdint(c++11)

类型:

intmax_t
标准支持的能表示最大范围的整型

intptr_t
能容纳指针值的整型

int8_t, int16_t, int32_t, int64_t
分别表示8, 16, 32和64位的整型

int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t
分别表示最少为8, 16, 32和64位的整型,至少和其指定位数的整形一样快

int_least8_t, int_least16_t, int_least32_t, int_least64_t
分别表示至少为8, 16, 32和64位的整型

uintmax_t
标准支持的能表示最大范围的无符号整型

uintptr_t
能容纳指针值的无符号整型

uint8_t, uint16_t, uint32_t, uint64_t
分别表示8, 16, 32和64位的无符号整型

uint_fast8_t, uint_fast16_t, uint_fast32_t, uint_fast64_t
分别表示最少为8, 16, 32和64位的无符号整型,至少和其指定位数的整形一样快

uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t
分别表示至少为8, 16, 32和64位的无符号整型




INTMAX_MIN, INTMAX_MAX
intmax_t类型的最小值和最大值

INTPRT_MIN, INTPTR_MAX
intptr_t类型的最小值和最大值

INT8_MIN, INT8_MAX, INT16_MIN, INT16_MAX, INT32_MIN, INT32_MAX, INT64_MIN, INT64_MAX
分别表示int8_t, int16_t, int32_t, int64_t类型的最小值和最大值

INT_FAST8_MIN, INT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX, INT_FAST32_MIN, INT_FAST32_MAX, INT_FAST64_MIN, INT_FAST64_MAX
分别表示int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t类型的最小值和最大值

INT_LEAST8_MIN, INT_LEAST8_MAX, INT_LEAST16_MIN, INT_LEAST16_MAX, INT_LEAST32_MIN, INT_LEAST32_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX
分别表示int_least8_t, int_least16_t, int_least32_t, int_least64_t类型的最小值和最大值

UINTMAX_MAX
uintmax_t类型的最大值

UINTPRT_MAX
uintprt_t类型的最大值

UINT8_MAX, UINT16_MAX, UINT32_MAX, UINT64_MAX
分别表示uint8_t, uint16_t, uint32_t, uint64_t类型的最大值

UINT_FAST8_MAX, UINT_FAST16_MAX, UINT_FAST32_MAX, UINT_FAST64_MAX
分别表示uint8_t, uint16_t, uint32_t, uint64_t类型的最大值

UINT_LEAST8_MAX, UINT_LEAST16_MAX, UINT_LEAST32_MAX, UINT_LEAST64_MAX
分别表示uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t类型的最大值