变量类型的存储大小

  • 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(无符号整形)      

变量类型的存储大小