非常风学习网 导航

内存的地址 和大小的问题 很简单

2024-06-01来源:编辑
1比特bit是0,1两个标志
1字节byte是8比特从0000 0000 到 1111 1111,2的八次方
一个字word是一个双字节,也就是两个字节,2的16次方
按十进制就是0-65535

注意分清比特bit和字节byte
一般比特用小写b,字节用大写B

地址空间范围为0到65535,字长1字节
可以理解为你有65536个抽屉,每个抽屉里面可以装1字节数据
在你寻址,也就是找抽屉的时候,需要65536个地址来标识每一个抽屉,也就是“地址空间范围为0到65535”
其实地址空间范围为0到65535,字长2字节或者4字节都是可以的
不过这些都可以通过字长1字节来扩展实现

同样以地址空间范围为0到65535,字长1字节的存储器为例
比如把0、1号抽屉改名叫A1,3、4号抽屉改名叫A2,这就把字长提高到2字节,同时把寻址范围降低到原来的一半即可,这些是可以通过编程和地址线的改动实现的
“一个65kb、字长为1字节的内存的地址空间范围为0到65535”
可以等效为一个65kb,字长为2字节,地址空间范围为0到32767的内存空间

注意区分几个概念,字是word,双字节的简称
字长是你自己定义的,没有固定取值,当然一般会定义成1字节即8比特,或者一个双字节即16比特,你非要定义成字长10比特也行,只要你不嫌麻烦

比特位主要是和你的实际用的存储芯片有关系,如果芯片数据线是并行的8条线,则一次读取8比特,16条线则一次读16比特,在电路上比较直观(个人感觉)
字节是计算机的概念,平时大家都用字节计算数据量,你非要说80G的硬盘是640G比特的也没问题,都对,只是习惯上不这么用
以前有些奸商号称自己存储量大,128G比特,实际就是16G,骗那些不懂换算的消费者
你非要说他欺诈吧,他说的实际也没错……

一个字节(Byte)=8bit。
1bit可以存放0,1两种状态,即一个2进制位。

65535 = 2的16次方 - 1,因为0算一个有效地址所以总数就是2字节。

所以呢你的问题本身就有说的颠三倒四,原话应该是:一个字长为2字节的内存的地址空间范围为0到65535,占用16b,可寻址65kB(65536B)空间。

觉得好求采纳答案^_^

采纳的答案有错误吧,1字节指的是内存基本单位,65KB本身就有66560个字节,也就需要66560个地址,但是16位地址存储器支持0-65535也就是64kb的内存,17位则是128kb,于是你65kb多出来的1kb因为只有16根地址线,最大也就只能支持到65536个地址,那1kb就没法给地址了,除非你用了17根地址线,决定地址空间范围的是地址线数量,不是内存本身,因此我有理由怀疑你复制的话没有复制完全,或者说用内存大小决定地址线数量,于是65kb内存用16跟地址线,最大也只能支持2^16个地址,即是0-65535,那1KB的内存依然无法给地址。

如果有纰漏,请指教

我也写写我的理解。内存空间大小(容量大小)的单位可以是“字节(Byte,B)”或者“字”。其中一个字的字长(大小)又可以用“字节”做单位。数据以称为“字”的位组的形式在内存中传入和传出(书本原话)。
例子:字可以是8位(bit, b),16位,32位,64位,字长分别为1字节(Byte,B)、2字节、4字节、8字节,注:1B=8b。
每个字有一个唯一的地址,所有地址构成一个地址空间,地址空间的大小就是地址的总数(即字的总数)。所以,内存空间大小(B)=地址空间大小(字)x字长(B/字),括号内是单位。一般说内存空间是多少多少KB、MB、GB,说的是以字节(B)为单位,可以说是从“数据容量”层面去表达内存空间的大小;如果以“字”为单位,可以说是从“能容纳多少个地址”的层面去表达内存空间的大小。
因此,问题所说为什么要用“65KB(应该大写,内存大小常用B做单位,1K=2^10≈10^3),字长为1字节”表示就很好理解了,“65KB”就是内容的大小,是从“数据容量”层面表达的。字长为1字节说明内存中数据传入和传出的大小为1字节(1B/字)。而地址空间的大小=65KB/(1B/字)=65K(字)=(2^6+1)*2^10(字)=66560(字),即66560个地址。如果内存大小是64KB,地址空间大小就是65536个地址,范围从0开始,就是0~65535。我估计应该是64KB,被写错成65KB了吧。。

相关主题

首页
返回顶部
联系邮箱
非常风学习网