问题:究竟在VS下,应用程序是编译为x86还是x64呢?

转载内容如下:

一)64位系统和32位有什么区别?

1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存

2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件的基础上的。

什么是64位处理器?

之所以叫做“64位处理器”,是因为电脑内部都是实行2进制运算,处理器(CPU)一次处理数据的能力也是2的倍数。8位处理器、16位处理器、32位处理器和64位处理器,其计数都是2的倍数。一次处理的数据越大,该电脑处理信息的能力越来越大;因此64位处理在先天就比32位处理器具有快速的能力。那为什么不用更高级的128位处理器呢?因为位数越高,处理器芯片的设计也就越复杂,目前的技术水平暂时无法制造这么复杂的芯片。

64位处理器之失

※硬件———缺乏驱动程序,很多现有硬件无法使用

※软件———操作系统不是问题,但是软件出现不兼容难题

64位处理器之得

※硬件———更快的执行速度,更大的内存管理

※软件———最新的尖端软件首先出现在64位平台

(二)数据类型对应字节数

程序运行平台
      不同的平台上对不同数据类型分配的字节数是不同的。
      个人对平台的理解是CPU+OS+Compiler,是因为: 
      1、64位机器也可以装32位系统(x64装XP); 
      2、32位机器上可以有16/32位的编译器(XP上有tc是16位的,其他常见的是32位的); 
      3、即使是32位的编译器也可以弄出64位的integer来(int64)。 
      以上这些是基于常见的wintel平台,加上我们可能很少机会接触的其它平台(其它的CPU和OS),所以个人认为所谓平台的概念是三者的组合。 
      虽然三者的长度可以不一样,但显然相互配合(即长度相等,32位的CPU+32位的OS+32位的Compiler)发挥的能量最大。 
      理论上来讲 我觉得数据类型的字节数应该是由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个字节

x86和x64的意义相关推荐

  1. linux64和x86,Linux x86和x64的区别

    0x01:寄存器分配的不同 (1)64位有16个寄存器,32位只有8个.但是32位前8个都有不同的命名,分别是e _ ,而64位前8个使用了r代替e,也就是r _.e开头的寄存器命名依然可以直接运用于 ...

  2. x86、x64和ia64的区别

    x86或80x86是英特尔Intel首先开发制造的一种微处理器体系结构的泛称.该系列较早期的处理器名称是以数字来表示,并以"86"作为结尾,包括Intel 8086.80186.8 ...

  3. WCF 4.0 Issues with IIS 7.0 on x86 and x64 bit Machines(转载)

    If you are experienced with WCF, you know that in case of installing IIS after installing .NET frame ...

  4. x86 vs x64

    今天看到某青年的blog转贴, 那文章写得真是阎王爷打报告, 鬼话连篇. 现在网上的东西真不能看. 在这里我来写一点点关于x86和x64的东西. i686 : Intel 686 ( Pentium ...

  5. [系统底层] x86和x64下ssdt的差异

    2019独角兽企业重金招聘Python工程师标准>>> X86和x64下ssdt的差异 首先介绍一下SSDT相关的结构体 PVOID无类型指针,x86下32位,x64下64位 结构体 ...

  6. python37.dll可能与您正在运行_模块可能与您正在运行的Windows版本不兼容。检查该模块是否与regsvr32.exe的x86或x64...

    今天一个网友群里留言,他win8的系统,下载我们的软件无法正常运行,原来他的win8是64位的系统,而我们的软件是32位,而且这个软件还需要一个dll文件,没有注册就无法使用,参考下面的方法解决了 1 ...

  7. 如何检查Windows Vista , XP和2003系统是32位或64位( x86或x64 )版本

    您可能会收到一个电脑作为礼物,以及想要找出系统是否设置了一个32位或64位(微软标签,他们作为x86或x64 )为基础的作业系统,这需要特别建造的应用软件. ) . For computer or P ...

  8. msvc2017配置qt5.12.8 x86和x64库版本切换

    1. QT vs Tool安装可以直接去qt官网下载 http://download.qt.io/archive/vsaddin/ 插件版本高,但不一定好用,而且有BUG 我下载了2.5.1版本的插件 ...

  9. 【】Microsoft Dynamics CRM Server 2011 (x86 and x64) - DVD (Chinese-Simplified)

    中文(简体) 文件名:cn_microsoft_dynamics_crm_server_2011_x86_x64_dvd_649127.iso SHA1:361630F2F808F1D1827FBB0 ...

最新文章

  1. Finding the Edges (Sobel Operator)
  2. 大多数Web浏览器中都可以使用PUT,DELETE,HEAD等方法吗?
  3. [CF396E]On Iteration of One Well-Known Function
  4. 意大利罗马银行连环抢劫案告破 一名警察涉案
  5. CV之YOLOv3:基于Tensorflow框架利用YOLOv3算法对热播新剧《庆余年》实现目标检测
  6. jmeter---linux安装运行
  7. Angular基础(五) 内建指令和表单
  8. GAN的理解与TensorFlow的实现
  9. ui uview 安卓开发_uni-app UI框架之uview-ui使用教程
  10. CodeForces - 1316E Team Building(状压dp)
  11. sts 明明导包正确却报错_这真是危险的关系,明明你错了,但是她认了!
  12. Java案例:静态内部类
  13. [渝粤教育] 中国地质大学 会计专业英语 复习题
  14. python 删除大表数据
  15. Linux命令详解词典高频命令(2)
  16. python使用多线程爬取
  17. Java多线程面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次
  18. CodeLite开发Gtk 语法检查报错
  19. 换手机了,换用三星S559
  20. EDVR和FastDVD

热门文章

  1. 4G的u盘显示有文件 但是打开是空的
  2. 数字经济学家高泽龙出席元宇宙文旅高端研讨会
  3. 模仿网易云微信小程序
  4. python中绝对角度是什么意思_计算角度是否介于两个角度之间
  5. 3D建模老师告诉你没学历没基础怎么学3D建模
  6. linux下Android开机动画制作
  7. Linux Shell中单引号、双引号、反引号的解释
  8. 2016MWC前瞻 华为爱立信中兴大战5G黑科技
  9. 华为、中大、谷歌合作最新研究黑白漫画场景可批量上色
  10. Java api 调用Sqoop2进行MySQL--Hive的数据同步