C++:基础篇-32位和64位系统区别及字节数
今儿面试了一个刚刚毕业的,但是不知道一个int、long、double这几个都是多少位,我给你们总结一下哈:
常用数据类型对应字节数
可用如sizeof(char),sizeof(char*)等得出
32位编译器:
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位编译器:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字节
32位机器下面的结果:
数据类型 | 说明 | 字节数 | 取值范围 |
bool | 布尔型 | 1 | true,false |
char | 字符型 | 1 | -128~127 |
unsigned char | 无符号字符型 | 1 | 0~255 |
short | 短整型 | 2 | -32768~32767 |
unsigned short | 无符号短整型 | 2 | 0~65535 |
int | 整型 | 4 | -2147483648~2147483647 |
unsigned | 无符号整型 | 4 | 0~4294967295 |
long | 长整型 | 4 | -2147483648~2147483647 |
unsigned long | 无符号长整型 | 4 | 0~4294967295 |
float | 单精度型 | 4 | -3.4×10-38~3.4×10-38 |
double | 双精度型 | 8 | -1.7×10-308~1.7×10-308 |
long double | 长双精度型 | 8 | -1.7×10-308~1.7×10-308 |