Joh*_*ohn -2 architecture computer-architecture computer-vision 32bit-64bit
据我所知,"32位"等于2 ^ 32,这意味着我可以用32位操作系统定义4GB的内存.并且"64位"是2 ^ 64,允许15EB.因此,使用64位操作系统,我们可以在计算机中放入更多内存.
但是,我对另一点感到困惑.
我们可以在32位的情况下看到我们在系统中有(比方说)4GB的物理内存,我们将4GB除以32位整数的大小,我们可以存储一些整数(称为N)记忆.并且,在64位中,计算是4GB除以64位整数的大小,因此我们只能存储一半的整数.结果,对于64位,我们无法存储具有相同内存的整数.
这是否意味着微软通过在32位和64位版本的操作系统中将此内存显示为"4GB"来欺骗我们?
不,微软并没有通过在两种情况下都将内存显示为相同而作弊.
"32位"与"64位"仅指指针的大小.两种类型的系统都有8位字节,因此无论您使用的是32位还是64位操作系统,相同的内存都将是4千兆字节.
它不仅仅是大小相同的字节.int在两个系统上定义为(在C中)的正常整数是32位.long int如果它是Windows,即使是在两个系统上定义为32位的整数(尽管Linux在64位系统上使其为64位).因此,您可以看到应用于操作系统的"32位"或"64位"术语与除指针之外的其他事物的大小几乎没有关系.
除此之外,存储在计算机内存中的大多数数据都不是指针,甚至是可能会或可能不会改变大小的整数; 它是图像的像素或字符串的字节或声音文件中的16位样本或程序中的计算机指令.根本没有改变尺寸.因此,无论您使用的是32位还是64位操作系统,通常都可以在相同数量的内存中存储相同数量的"实际信息".
(现在,有一点当然内存中的一些数据是指针,所以当你处理主要是指针的东西时,使用64位操作系统可能意味着你为相同的数据使用更多的内存.在极少数情况下这很重要,但它们非常罕见.即便如此,它仍然是相同的内存字节数;你只需要更多它.)