32位操作系统 能支持的内存空间我算的是2^32B=512MB 但根据现实的算法是2^32bit=4G 这个32位怎么变字节了
32位的寻址空间为32个0到32个1之间我知道CUP一次可以处理4个字节(32个位)但是寻址的时候为什么会变成字节为单位呢?难道是一个32位的二进制数在内存空间里占一个字...
32位的寻址空间为32个0到32个1之间 我知道CUP一次可以处理4个字节(32个位) 但是寻址的时候为什么会变成字节为单位呢?难道是一个32位的二进制数在内存空间里占一个字节所以算出来的寻址范围为4G 但一个字节为8位怎么能存下一个32位的二进制数呢?
展开
3个回答
展开全部
8位一个字节,从古(8080CPU)至今(i7CPU),从来没有改变过。
我们把问题简化一下,比如你有一个4位的操作系统,那么,它可以寻址2^4=16个地址,一个地址对应一小段内存(不是一位),这个一小段就是一个字节,16*1字节=16字节,所以可以寻址16字节,也就是16*8位。但一个字节要分为2次处理。
如果你有一个8位的操作系统,那么,它可以寻址2^8=256个地址,一个地址同样对应一个字节,256*1字节=256字节,所以可以寻址256字节,也就是256*8位。但一次就可以处理一个字节。
依次类推:
如果你有一个16位的操作系统,那么,它可以寻址2^16=64K个地址,一个地址同样对应一个字节,64K*1字节=64K字节,所以可以寻址64K字节,也就是64K*8位。但CPU一次就可以处理2个字节。(如果你用过DOS,你会知道,它是16位的操作系统,但当时的计算机都是640K内存,加上bios等,它实际寻址是1M=2^20,为什么呢?答案很简单,8086的寻址寄存器是20位的,不是16位的,但dos是16位的OS,所以它的.com程序文件都<64k,超过了就要用.exe)。
对于32位的操作系统,它可以寻址2^32=4G个地址,一个地址同样对应一个字节(也就是8位)的内存,4G*1字节=4G字节,所以可以寻址4G字节,也就是4G*8位。但CPU一次就可以处理4个字节。
要存一个字母比如“A”,只要一个字节,寸一个汉字,需要2到3个字节(取决于使用哪种字符集),要存一个32位的二进制数,就要用4个字节的内存,但CPU的寄存器是32位的(实际64位,但操作系统是32位的),它一次就可以处理这个占了4个地址共32位的二进制数。
如果是64位操作系统,它可以寻址2^64=4GX4G=16T个地址,一个地址同样对应一个字节(也就是8位)的内存,16T*1字节=16T字节,所以可以寻址16T字节,也就是16T*8位。但CPU一次就可以处理8个字节。此时一个64位的2进制数要占8个地址共64位。但CPU的寄存器可以一次将其读入并处理它。
我们把问题简化一下,比如你有一个4位的操作系统,那么,它可以寻址2^4=16个地址,一个地址对应一小段内存(不是一位),这个一小段就是一个字节,16*1字节=16字节,所以可以寻址16字节,也就是16*8位。但一个字节要分为2次处理。
如果你有一个8位的操作系统,那么,它可以寻址2^8=256个地址,一个地址同样对应一个字节,256*1字节=256字节,所以可以寻址256字节,也就是256*8位。但一次就可以处理一个字节。
依次类推:
如果你有一个16位的操作系统,那么,它可以寻址2^16=64K个地址,一个地址同样对应一个字节,64K*1字节=64K字节,所以可以寻址64K字节,也就是64K*8位。但CPU一次就可以处理2个字节。(如果你用过DOS,你会知道,它是16位的操作系统,但当时的计算机都是640K内存,加上bios等,它实际寻址是1M=2^20,为什么呢?答案很简单,8086的寻址寄存器是20位的,不是16位的,但dos是16位的OS,所以它的.com程序文件都<64k,超过了就要用.exe)。
对于32位的操作系统,它可以寻址2^32=4G个地址,一个地址同样对应一个字节(也就是8位)的内存,4G*1字节=4G字节,所以可以寻址4G字节,也就是4G*8位。但CPU一次就可以处理4个字节。
要存一个字母比如“A”,只要一个字节,寸一个汉字,需要2到3个字节(取决于使用哪种字符集),要存一个32位的二进制数,就要用4个字节的内存,但CPU的寄存器是32位的(实际64位,但操作系统是32位的),它一次就可以处理这个占了4个地址共32位的二进制数。
如果是64位操作系统,它可以寻址2^64=4GX4G=16T个地址,一个地址同样对应一个字节(也就是8位)的内存,16T*1字节=16T字节,所以可以寻址16T字节,也就是16T*8位。但CPU一次就可以处理8个字节。此时一个64位的2进制数要占8个地址共64位。但CPU的寄存器可以一次将其读入并处理它。
展开全部
以字节为单位,是因为计算机最小容量单位就是字节,也就是说在内存中寻址线变动一点就换一个字节的位置,2^32个位置就是4GB
参考资料: G
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个内存地址对应8bit内存空间也就是一个Byte(字节)
所以32位的地址总线的寻址空间就是
2^32=4294967296Byte也就是4GB了
所以32位的地址总线的寻址空间就是
2^32=4294967296Byte也就是4GB了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询