16位、32位、64位

来源:互联网 发布:简书 知乎 编辑:程序博客网 时间:2024/04/25 23:51

所谓16位、32位、64位等术语有时指总线宽度,有时指指令宽度(在定长指令集中),而在操作系统理论中主要是指内存寻址的宽度。
一、16位
如果内存的寻址宽度是16位,那么每一个内存地址可以用16个二进制位来表示,也就是说可以在64KB的范围内寻址。

0000000000000000
1111111111111111(10进制为65535)
1024Byte=1KB
寻址范围为:(65535 + 1)/1024=64KB

二、32位
同样道理32位的宽度对应4GB的寻址范围。
00000000000000000000000000000000
11111111111111111111111111111111(10进制4294967295)
(4294967295+1)/1024(KB)/1024(MB)/1024(GB) = 4GB

三、64位
64位的宽度对应16 Exabyte的寻址范围。
内存寻址范围并非仅仅是对操作系统而言的,其他类型的软件的设计有时也会被寻址范围而影响。
但是在操作系统的设计与实现中,寻址范围却有着更为重要的意义。 在早期的16位操作系统中,由于64KB的寻址范围太小,
大都都采用“段”加“线性地址”的二维平面地址空间的设计。分配内存时通常需要考虑“段置换”的问题,
同时,应用程序所能够使用的地址空间也往往有比较小的上限。
在32位操作系统中, 4GB的寻址范围对于一般应用程序来说是绰绰有余的,因而,
通常使用一维的线性地址空间,而不使用“段”。