不同操作系统及CPU字长、寻址能力、指针宽度的理解

字长

64位CPU和32位CPU中64和32的含义:
64和32指的是CPU中的寄存器(通用)的字长,字长就是一个字的位数。这里说的字的含义是:处理器进行数据处理时,一次存取,加工,和传送的数据长度。

现在CPU大多是64位的,但大多都以32位字长运行,都没能展示它的字长的优越性,因为它必须与64位软件(如64位的操作系统等)相辅相成,也就是说,字长受软件系统的制约,例如,在32位软件系统中64位字长的CPU只能当32位用。

在计算机词典中:

(1)位(Bit):表示一个二进制数码0或1,是计算机存储处理信息的最基本的单位。

(2)字节(Byte):一个字节由8个位组成。它表示作为一个完整处理单位的8个二进制数码。

(3)字(Word):16个位为一个字,它代表计算机处理指令或数据的二进制数位数,是计算机进行数据存储和数据处理的运算单位。

(4)双字(Dword):通常称16位是一个字,32位是一个双字,64位是两个双字。
(5) 四字 Qword: 两个双字称为一个四字

系统中的一个字的大小与CPU寄存器的大小有关同时也受软件系统限制,通常来说16位,32位与64位CPU中的字不一样:
16位系统:一个字 = 2Byte
32位系统:一个字 = 4Byte
64位系统:一个字 = 8Byte

CPU位宽

CPU位宽指的是CPU位宽指的是数据总线位宽,即一个时钟周期内CPU能处理的二进制位数,和寄存器位宽相对应。

CPU的寻址能力

查看当前操作系统的真实寻址空间和虚拟寻址空间:
(Windows 在cmd终端下用 systeminfo 命令可以查看自己的操作系统以及cpu位数)
linux:

cat /proc/cpuinfo    :address sizes   : 39 bits physical, 48 bits virtual

CPU的寻址能力与它的地址总线位宽有关,64位CPU出现之后,其地址总线位宽一般采用的是36位或者40位,它们寻址的物理地址空间为64GB或者1T。16位CPU的地址总线位宽可以是20位,32位CPU的地址总线可以是36位,64位CPU的地址总线位宽可以是40位。

操作系统32bit、64bit

操作系统有32/64位之分,但同时CPU也有32/64位之分;32位CPU只能安装32位系统,64位CPU可以安装32位操作系统,也可以安装64位操作系统;

指针大小

C++指针指向进程内的一个逻辑内存地址,然后由操作系统管理着从逻辑地址到物理地址的映射。我们在使用计算机时,指针操纵的其实是逻辑地址,32位操作系统的逻辑地址寻址范围只有2^32=4GB。
一般来说,在64位系统下,指针长度为8,32位系统下,指针长度位4;但是有的编译器为了不同的操作系统之间相互兼容,内部对指针进行了包装,使得不管在64位还是32位系统下,指针都是4个字节长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值