- 1字节 = 8位,即1byte = 8bit
- 早期的操作系统是16位的,所以:
int 用2个字节表示,范围是 -32768 ~ 32768
long 用4个字节表示,范围是 -2^31 ~ 2^31-1
- 对于32位操作系统(x86),有:
int 用4个字节表示,与 long 相同
- 对于64位操作系统(x64),有:
与程序编译方式有关:32位的编译系统中,int 占4个字节,与 long 一样
64位的编译系统中,int 占4个字节,long 占8个字节,范围为 -2^63 ~ 2^63-1
- 在标准中,并没有规定 long 一定要比 int 长,short 要比 int 短,对于浮点型 long double 至少和 double 一样长,double 至少和 float 一样长。 而如何实现要看编译工具的编译方式.
即:
short <= int <= long
short (short int):2个字节
int: 2/4个字节
long(long int): 4/8个字节
long long(long long int): 8个字节,低版本的VS不支持 long long
对于32位操作系统
类型 | 字节 | 位数 | 范围 |
bool | 1 | 8 | 0,1 |
char | 1 | 8 | -128 ~ 127 |
unsigned char | 1 | 8 | 0 ~ 255 |
short | 2 | 16 | -2^15 ~ 2^15-1 |
unsigned short | 2 | 16 | 0 ~ 2^16-1 |
int | 4 | 32 | -2^31 ~ 2^31-1 |
unsigned int | 4 | 32 | 0 ~ 2^32-1 |
long | 4 | 32 | -2^31 ~ 2^31-1 |
unsigned long | 4 | 32 | 0 ~ 2^32-1 |
float(浮点型) | 4 | 32 | |
double(双浮点型) | 8 | 64 | |
wchar_t(宽字符型) | |||
size_t(无符号整形) |