32位和64位机数据类型的大小

32位系统和64位有什么区别?
通常的64位技术是相对32位而言的,这个位数指的是CPU GPRs(General-Purpose register通用寄存器)的数据宽度为64位,而32位的处理器的通用寄存器的数据宽度为32位,64位指令集就是运行64位数据的指令,也就是说一次可以运行64bit的数据。
也就是说:

64位CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存;
64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统和64bit软件的基础之上。

综上,虽然理论上来讲,数据类型的字节数应该是由CPU决定的,但实际上主要由编译器决定,编译器会根据系统平台自己改变数据类型的取值范围。

常用数据类型对应字节数
类型    32位编译器    64位编译器
char    1个字节    1个字节
char*    4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节    8个字节(同理64位编译器)
short int    2个字节    2个字节
int    4个字节    4个字节
unsigned int    4个字节    4个字节
float    4个字节    4个字节
double    8个字节    8个字节
long    4个字节    8个字节
long long    8个字节    8个字节
unsigned long    4个字节    8个字节

发布了81 篇原创文章 · 获赞 68 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/li198847/article/details/104050284
今日推荐