一、32 & 64bit的概念
大家是不是经常听到32位和64位这个词,但到底什么是32位,什么是64位呢?其实,32位和64位主要是指CPU的字长,也就是GPRS(通用寄存器)的数据宽度。简单来说,就是CPU一次处理数据的能力。32位处理器一次只能处理32位,即4个字节的数据,而64位处理器一次就能处理64位,即8个字节的数据。这也就意味着64位处理器处理信息的能力更强。
CPU从32bit 到64bit的变化
- 处理能力的提升:原来需要两个周期完成的事情,现在一个周期就能搞定。
- 64bit CPU寻址能力更强:32bit CPU只能寻址2^32(4G)内存,而64bit CPU理论上的寻址能力是2^64(约1700TB),目前的硬件还达不到这个水平。
- 数据精度的提升:一些数据类型可用更大的字长表示,可表示更大范围或更精确的数。
编程时如何选择Win32还是x64
在VS中,默认的工程设置是32位的。如果需要修改,可以通过编译选项进行修改。
二、32 & 64bit下各种数据类型大小对比
下面是一个测试代码,用于比较32位和64位下各种数据类型的大小:
// C++Test.cpp : 定义控制台应用程序的入口点。
//
#include
