C/C++ 基本数据类型

整型

占用 bits

  • char $\leq$ short $\leq$ int $\leq$ long $\leq$ long long
  • char 占用1字节,unsigned最大值255
  • short 至少占用16 bit,unsigned最大值65535,6万多
  • long 至少占用32 bit,unsigned最大值4294967295,40多亿

相关库

用\, \头文件查看最值

1
2
3
4
#include <limits.h>

int max = INT_MAX;
int min = INT_MIN;

signed 与 unsigned

整型默认signed,只有char由实现定义

其它

  • int 被编译器认为是“最自然”的整型。在运算时,比 int “低级”的类型会转换成int类型处理
  • % 运算符,对于负整数的处理,可视为:a % b = a - (a/b) * b

浮点数

占用 bits

  • 浮点数的指数部分至少从-37取到37,也就是取值范围(正数)至少是E-37 ~ E+37
  • float $\leq$ double $\leq$ long double
  • float 至少占用32 bit
  • double 至少占用48 bit

存储结构

分为2部分,一是指数部分 $e$,二是尾数部分 $r$,所表示的值为 $r \times 10^e$,这就像把 $r$ 作为整数的小数点移动 $e$ 位一样,所以称为浮点数。

相关库

\, \对浮点数有相关限定

1
2
3
4
#include <float.h>

float max = FLT_MAX; // double: DBL_MAX, long dboule: LDBL_MAX
float min = FLT_MIN; // double: DBL_MIN, long dboule: LDBL_MIN

其它

常量小数默认为 double,如需float加f或F,需long double加L

参考