一个电脑处理数据是有规定的格式的。 32位的电脑存放数据的形式是对每个数据用32个二进制字节来存放。 64位的意思就是用64位个二进制字节来存放。64位操作系统的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32位(需要四个指令,一次提取4个字节的数据)提高了一倍。位数越多每次处理存储的数据就也多。
“位”指的是CPU一次可以处理的信息量,位值的大小决定了CPU的寻址能力。那什么是寻址呢?
CPU在运算的时候需要把数据提取出来,而这个寻找数据的过程就叫寻址。
所以“位”的大小就决定了CPU可寻找的范围,如32位的CPU可以寻址2的32次方大小的寻址空间,也就大概4G。
而CPU读取数据需要通过内存来进行数据缓存,这也是为什么32位的CPU最大能搭配4G内存的原因了,即使内存超过4GB在32位系统中也只能使用到4GB。
一般来说单位时间里处理字长越多,这块CPU性能也就越强。
常用数据类型对应字节数
可用如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个字节