从编程的角度来看,当程序是32位还是64位时它意味着什么?

时间:2013-10-31 10:54:26

标签: 32bit-64bit

我是计算机科学第一年的初级程序员。 我很好奇32位和64位系统,以及它如何影响开发软件。 当我下载软件时,我需要在两者之间进行选择,而其他软件只有32位版本。

  • 64位系统有不同的编程方式吗?
  • 是否以相同方式编译?
  • 单独的64位应用程序有哪些主要优点?

干杯

3 个答案:

答案 0 :(得分:1)

一般来说,64位应用程序的主要好处是它可以访问更多内存。拥有32位指针,您只能访问4GB内存。

大多数现代编译器都可以选择编译32位或64位代码。

32/64编码是相同的,除非你正在处理大量的内存中对象,你需要专门使用64位。

答案 1 :(得分:0)

一个有趣的事实/例子是Unix时间存储为单个数字。它计算为从1970年1月1日开始经过的秒数。这个数字很快就会达到32位大小,所以最终我们必须将所有系统升级到64位,这样它们才能保存这么大的数字。

答案 2 :(得分:0)

  

对于64位系统,是否有不同的编程方式?

是,不是。否,从某种意义上说,即使您使用的是诸如C之类的语言,在大多数情况下您也应该能够编写独立于平台的代码。 !)有助于加快程序的关键部分。例如,您也许可以使用可用的特殊说明。

  

是否以相同的方式进行编译?

再次,是和否。系统语言的编译器在所有体系结构中的工作方式都相似,但是当然细节有所不同。例如,编译器将使用有关您的体系结构的知识来为其生成尽可能高效的代码,但还必须注意体系结构与其他细节(如调用约定)之间的差异。

  

单独的64位应用程序的主要优点是什么?

我假设您正在询问常见的台式机CPU,即x86架构,但请注意,还有其他架构的字长范围从8位到128位。通常,人们会针对单个架构(即针对给定的机器)编译程序,并且就是这样。

但是,x86有点特殊,因为CPU可以以不同的模式运行:16位,32位和64位。实际上,它们在单个CPU中实现了多个ISA(指令集体系结构)。这样做是为了保持向后兼容性,这是它们成功的主要关键。人们购买第一批具有64位功能的CPU时,很可能仍在使用32位操作系统和软件。

与32位x86相比,64位x86有几个好处:更多的可寻址内存,更多的整数寄存器,两倍的XMM寄存器,更好的调用约定,有保证的SSE2 ...唯一的缺点是使用64位指针,这意味着更多的内存和缓存使用率。实际上,许多程序在x64中的运行速度可能会略快(例如10%)。