64位与32位操作系统的不同

来源:互联网 发布:php二维数组 编辑:程序博客网 时间:2024/04/30 12:39

一个电脑处理数据是有规定的格式的。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个字节
0 0