本文转载自微信公众号《程序喵大师》,作者程序喵大师。转载本文请联系程序大师喵公众号。大家一定遇到过这样的问题:安装某个软件时,出现提示选择32位版本还是64位版本?我们还可以查看自己的电脑是32位还是64位系统。你可能知道32位和64位与系统有关,但实际上,32vs64可以有多种含义。总的来说,有几种可能:CPU、程序、操作系统。今天就为大家一一介绍!→_→CPU首先我们要从位数是多少说起。计算机中的位数是指CPU一次可以处理的最大位数。Intel在从16位的286升级到386的时候,为了兼容16位的系统,首先推出了386SX。该CPU内部预算为32位,对外传输数据为16位。在386DX之前,所有CPU的内部和外部都是32位的。有些人容易混淆计算机中出现的“位”与Byte、KB、MB等的关系,8位等于Byte的一个字节,即8bit=1B。32位处理器一次最多可以处理4Byte(32bit),64位处理器一次最多可以处理8Byte(64bit)。32位架构的CPU数据总线宽度为32位,每次可以传输32位数据,可以计算4个字节。64位架构的CPU数据总线宽度为64位,每次可以传输64位数据,可以计算8个字节。数据总线数据总线是CPU与内存或其他设备之间进行数据传输的通道。数据总线的宽度决定了CPU与外界的数据传输速度。每条线可以传输1位二进制数据,一次可以传输32条线数据。传输32位数据,64条线每次可以传输64位数据。除数据总线外,还有地址总线和控制总线。地址总线CPU通过地址总线指定存储单元。地址总线的宽度决定了CPU可以访问的最大内存空间。1条地址线可访问的内存空间为1位,32条地址线最大可访问的内存空间为4G。64根电线……太大了。控制总线CPU通过控制总线控制外部设备,主要通过控制总线传递控制信号和时序信号。控制总线是各种信号线的集合,是计算机各部件之间传输数据、地址和控制信息的公共通道,控制总线的宽度决定了CPU控制外部设备的能力。一般来说,CPU作为总线的主机,通过控制总线向各种外部设备发送控制信号,通过地址总线访问内存地址,通过数据总线传输数据。CPU位数越大,可以计算的值就越大。64位CPU可以进行更大数的计算,但是这个优势在普通应用中并不明显,普通应用不需要进行大数的计算,但是对于数值计算比较多的应用就非常明显了。同时,64位CPU拥有更大的寻址空间。运算速度不同:64位CPU的通用寄存器数据宽度为64位,处理器可以依次读取64位数据,是32位的两倍,运算速度理论上会提高一倍。就像两个不同的工人,工人A一次可以搬32块砖,工人B一次可以搬64块砖。谁搬砖快,你自然更喜欢用谁。由于运算速度的提升,64位CPU在多任务处理中可以流畅运行,来回切换也不会卡顿,王者荣耀流畅很多。那么有朋友要问了,既然位数越高处理器运算速度越快,为什么不用128位和256位的CPU呢?因为位数越高,处理器芯片的设计就越复杂,而现在的技术水平还没有办法做出这么复杂的CPU。→_→程序指的是32位程序和64位程序。32位指令的程序一般可以在64位机器上运行,并且兼容。64位指令的程序不能在32位机器上运行,因为32位寄存器不能存储64位指令。注意,其实是有16位程序的,但是16位程序不能在64位机器上运行,因为没有提供兼容机制。→_→操作系统操作系统其实就是一个程序。64位操作系统使用64位指令,不能安装在32位机器上。设计初衷不同。64位操作系统的设计初衷是为了满足大量内存和复杂浮点运算的需要。它一般用于科学计算、人工智能、图形设计、视频处理、3D动画、游戏数据库和各种网络服务器。在该领域。安装环境不同。64位操作系统只能安装在64位CPU机器上。同时,他们需要配合64位程序才能发挥最佳性能。32位操作系统可以安装在32位CPU的机器上,也可以安装在64位CPU的机器上,但是没有意义,64位的性能会大打折扣。寻址能力不同32位操作系统最多可以寻址2的32次方,即4,294,967,296字节,约4GB内存,4GB内存对于目前很多服务器程序来说已经不够用了,而64位操作系统理论上是可以的可以寻址2的64次方,即1亿多GB内存的18,446,744,073,709,551,616字节,但这只是理论上的。由于不同架构的CPU设计不同,寻址能力也存在差异。32位操作系统64位操作系统char1byte1byteshortint2bytes2bytesint4bytes4bytesunsignedint4bytes4bytesfloat4wordssection4bytesdouble8bytes8byteslong(pointersize)4bytes8byteslonglong8bytes8bytesunsignedlong4bytes8bytes20世纪和21世纪初期制造的计算机大部分是32位机,现在大部分是64位机。但是为了兼容32位机器,一般编程会开发两个版本,比如打包一个AndroidSDK,SDK里面一般都会包含32位和64位的动态链接库,iOSFramework内部也会有32位和64位的静态链接库。总结32位处理器的优点,唯一值得一提的是它兼容20世纪末和21世纪初开发的所有旧程序。64位处理器可以提高程序的性能,更好地利用64位操作系统的特性。64位处理器有256TB的虚拟内存,其中128TB分配给用户空间,另外128TB分配给内核空间(不同架构CPU的虚拟内存设计大小不同,CPUAMD的x86-64架构最少只有48位会在地址转换时用到,所以总的虚拟地址空间是2的48次方即256TB,这就涉及到multi-levelpage中的四级页表表,将在后续节目中介绍)。要实现真正意义上的64位计算,光有64位处理器是不够的。您还必须拥有64位操作系统和64位应用程序软件。三者缺一不可,缺一不可。Elements无法实现64位计算。在64位处理器方面,英特尔和AMD两大处理器厂商已经发布了多个系列的64位处理器,规格各异;参考https://blog.51cto.com/zliang90/1282301https://www.zhihu.com/question/19862280https://blog.csdn.net/qing101hua/article/details/80763764https://www.geeksforgeeks.org/difference-32-bit-64-bit-operating-systems/https://www.guru99.com/32-bit-vs-64-bit-operating-systems.htmlhttps://www.werecoverdata.com/blog/whats-better-64-bit-vs-32-bit/https://www.educba.com/32-bit-vs-64-bit-operating-system/
