C/C++在不同编译器上基本数据类型所占字节数


8位编译器(例如51单片机):

char               1个字节
char*(指针变量)     1个字节,指针类型所占字节和地址总线宽度有关系
int                2个字节
long               4个字节
float              4个字节
double             8个字节


16位编译器
char :            1个字节
char*(即指针变量)   2个字节
short int :        2个字节
int:              2个字节
unsigned int :     2个字节
float:             4个字节
double:            8个字节
long:              4个字节
long long:         8个字节
unsigned long:     4个字节

32位编译器(例如stm32单片机):

char               1个字节
char* (指针变量)    4个字节,32位的寻址空间是2^32, 即32个bit,所占字节和地址总线宽度有关系
short              2个字节
int                4个字节
long               4个字节
float              4个字节
double             8个字节


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个字节

可以用sizeof(int)来打印占多少个字节

数据存储是以10 进制表示,数据传输是以2进制表示的,所以1KB不等于1000B。
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB

1 B (byte,字节)= 8 bit
1 KB(Kibibyte, 千字节)=1024B= 2^10 B;
1 MB(Mebibyte,兆字节,百万字节,简称“兆”)  =1024KB = 2^20 B;
1 GB(Gigabyte,吉字节,十亿字节,又称“千兆”)=1024MB = 2^30 B;
1 TB(Terabyte,万亿字节, 太字节)          =1024GB = 2^40 B;
1 PB(Petabyte,千万亿字节, 拍字节)        =1024TB = 2^50 B;
1 EB(Exabyte,百亿亿字节, 艾字节)         =1024PB = 2^60 B;
1 ZB(Zettabyte,十万亿亿字节, 泽字节)     = 1024EB = 2^70 B;
1 YB(Yottabyte,一亿亿亿字节, 尧字节)     = 1024ZB = 2^80 B;
1 BB(Brontobyte,一千亿亿亿字节)           = 1024YB = 2^90 B;
1 NB(NonaByte,一百万亿亿亿字节)           = 1024 BB = 2^100 B;
1 DB(DoggaByte,十亿亿亿亿字节)            = 1024 NB = 2^110 B; [1]




猜你喜欢

转载自blog.csdn.net/qq_35831134/article/details/93904638