处理器,操作系统:32位,64位

31

我是一个非CS背景(没有正式学位)的编程新手,主要使用C#编写winforms。

我对32位和64位有些困惑...我知道有32位操作系统、32位处理器,以及基于这些的程序可以占用最大内存。它如何影响程序的速度?还有很多问题经常在我的脑海中浮现。

我尝试阅读了一些《计算机组成与体系结构》的书籍。但是,我要么太笨了无法理解书中写的内容,要么作者假设读者有一些CS背景。

有人能用简单易懂的英语解释这些事情,或者指向一些能做到这一点的东西吗。

编辑:我已经读到过类似“在32位模式下,它们可以访问高达4GB的内存;在64位模式下,它们可以访问更多的内存……”这样的东西。我想知道为什么会这样。

赏金:下面的答案都非常好,特别是Martin的回答。但是,我正在寻找一种详尽的解释,而且用简单易懂的英语。


2
但是,我可能太傻了,无法理解那里所写的内容,或者作者假设读者有一些计算机科学背景。当然,如果你没有计算机科学学位,这并不会有所帮助。许多人即使拥有计算机科学学位也不能正确使用指针之类的东西。 - Matthew Scharley
12
CS学位并不等于程序员。为什么人们认为有CS学位的人应该能够编程?CS是关于理论的,不是编程。 - Kevin Babcock
1
我不认为计算机科学学位等同于程序员……只是我觉得如果你有计算机科学学位,你更适合编程。也许我是错的。 - Sandbox
与https://dev59.com/eXM_5IYBdhLWcg3wq1CF相关的内容。 - Gordon Gustafson
2
很难确定你想要的回答水平。简而言之,人类使用十进制计数(数字从0到9),计算机使用二进制计数(位,数字0,1)。由于仅计数到1有点受限,而处理无限数量则有点太困难,32位计算机被设计为能够高效地处理32位(可以在十进制中计数到4294967296)。64位处理器被设计为能够处理更多的数据。一个数字可以指向1个字节的内存(8位-出于历史原因,很少有人关心),因此4294967296最多可以指向4GB的RAM。 - nos
显示剩余2条评论
15个回答

0
值得注意的是,某些应用程序(例如多媒体编解码和渲染)在完全利用64位编写时获得了显着的(2倍)性能提升。
请参见32位与64位基准测试UbuntuWindows Vista

0

对于非计算机科学专业人士来说,64位系统在各种计算方面都能更好地工作,而且它还能让你拥有更多的RAM,这也是很不错的。

另外,如果你的RAM有限(例如在VPS或小型RAM专用服务器上),那么选择32位系统,因为服务会占用更少的RAM。


这真的回答了问题吗? - Sandbox

0

这是一个非常简单的解释,考虑到上述内容已经相当详细了。

32位指的是寄存器。寄存器是用于存储数据的地方,所有程序都通过操作这些东西来运行。汇编语言直接在寄存器上操作(这也是为什么人们经常兴奋地用汇编语言编程的原因)。

32位意味着基本的寄存器可以容纳32位信息。64位则意味着64位的信息。

为什么这会使程序更快呢?因为你可以更快地执行更大的操作。需要注意的是,这只会使某些类型的程序更快。例如,游戏通常可以充分利用每个处理器进行优化,因为其涉及到大量的数学运算(因此需要使用寄存器)。

有趣的是,正如tchen所提到的,还有其他许多“东西”可以让你执行更大的操作。即使在“32位”系统上,SSE、SSE2等技术也具有64位寄存器和128位寄存器。

内存寻址能力的提高直接体现在基本寄存器大小的增加上,这是基于(我想)Windows特定的内存寻址系统。

希望这能有所帮助。其他回答者的准确性比我高得多,我只是试图用非常简单的语言进行解释(幸好我了解得很少 :)


0
我对这个问题有一个很好的答案,但它不适合在这个答案块中全部展示。简单来说,为了让你的程序从内存中获取一个字节,它需要一个地址。在32位CPU中,每个字节的内存地址存储在一个32位(无符号)整数中,最大值为4GB。当你使用64位处理器时,内存地址是一个64位整数,可以给你大约1.84467441 × 10^19个可能的内存地址。如果你是编程新手,这应该足够了。你真正需要关注的是学习如何编程,而不是关注你的处理器的内部工作原理,以及为什么你不能在32位CPU上访问超过4GB的RAM。

0

解释32位处理器可寻址内存范围的简单答案是:

假设您只允许构造3位数,因此您可以到达的最大数字是999。数字范围为(0-999)。您只有1000个数字可用。

但是,如果您被允许使用6位数字,则可以构造的最大数字为999999。现在范围是(0-999999)。因此,您现在有100万个数字可用于存储数据等。

同样,您在处理器中允许更多位时,可以构建更大的地址集合(以前一个例子中的数字),最终用于存储数据等。

有什么比这更简单的要读的?

-AD。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接