赞
踩
首先理解位与字节的区别:
①位(bit):计算机存储信息的最小单位。
②字节(Byte):计算机存储信息的基本单元,1Byte = 8 bit。
bit在大多数情况都以“了解硬件的工作原理”的方式出现的,Byte才是我们真正用于存储数据的单元,换句话说,我们存储的数据是精确到Byte而不会精确到bit。
所以内存可以看做是一小块一小块字节组成的,我们进行的寻址得到的最小单元是字节! 这和操作是系统是没关系的。也就是说,字节是计算机最小可寻址的内存单元。
但是和操作系统有关的是,用什么方式来表示内存中的地址!!
理论上:
16位系统下,内存地址应当用一个16位二进制表示(转化为十六进制0x0000-0xFFFF),占2个字节。
32位系统下,内存地址应当用一个32位二进制表示(转化为十六进制0x0000,0000-0xFFFF,FFFF),占4个字节。
64位系统下,内存地址应当用一个64位二进制表示(转化为十六进制0x0000,0000,0000,0000-0xFFFF,FFFF,FFFF,FFFF),占8个字节
(不知道是不是这个原因,32位系统的指针的大小是4个字节,也就是32位,64位系统的指针大小是8个字节,也就是64位。指针也正是表示内存中地址的方式,所以从表面上看,两者是相互印证的关系。)
下面以连续存储两个int类型的变量为例。(int类型在32和64位系统中都占4个字节)
可以看出,区别仅仅是对内存单元的表示方式不一样。
所以32位系统和64位系统对内存的表示方式不一样,就导致了两者所能寻址的最大范围也就不一样。32位系统是2^32=4GB,而64位系统理论上能到2 ^64,可以看作是无穷大。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。