bit与BYTE是完全不同的东西,1KB=1024B 1B也就是一个字节,是8位. 所以1KB=1024*8位=8192位.
8bit=1byte
(256K*4bit),当K与bit相乘之后,就得到K/bit。然后这个数,因为一般内存都是8bit来计算的。得到的乘数除以8bit!那就得到大小为K的数据了
——————————————————————————————————————————————————————————————————
问题:按字节内存编址,从80000H到BFFFFH 的区域存储容量是多少?,以16K*4b存储芯片构成内存需要多少个芯片?
第一个问题解决思维:
第一步:BFFFF H 把H去掉,这个只是表示前面的数是16进制的符号,可以直接无视
然后,十六进制里面,F=15。从右边的F开始+1,为什么要+1呢?估计是数据从0开始计算,百度的高手解释是:注意一下,这个+1是什么意思?因为只是提取中间的间隔数据,实际得出的结果应该是+1得到的
右边+1之后,F就变成0,向前一位继续加1,按照十进制的常识,满10进1,这里就是满16进1
那么所有F全部进1之后,B也得加1,对应的计算结果是C。最后,整个地址就变成了C0000H
第二步:C0000减去80000的计算。这个没啥,直接用10进制去计算
C0000
-
80000
_____________________
40000 C对应十进制的12,8对应10进制的8,那么最后结果就是这样
第三步:将上面的结果化成用10进制的16倍来表示16进制
首先来数一下,40000里面,4的后面有多少个数字,每一个任意数字,代表一个16.就是说像下面这样来表示
4*16*16*16*16 + 0*16*16*16 + 0*16*16 + 0*16 +0 得到这种表示方法之后,还得把这个除以1024!
为什么要除以1024呢,因为内存里面的地址是按Byte为单位,即是字节来算的。上面的结果是字节的代表。如果要计算成KB的,那就必须除以1024,化成KB来换算
那么1024这个十进制是多少个16的倍数呢? 是64*16 64又是多少个16的倍数呢? 是4*16*16
现在这个时候就可以把第三步的中转结果直接除以4*16*16了!
计算过程如下:(除法可以用分子分母结构表示)
4*16*16*16*16 + 0*16*16*16 + 0*16*16 + 0*16 + 0 ——————————————————————————————————————————————————————————————————4*16*16 + 4*16*16 + 4*16*16 + 4*16*16 + 4*16*16 0除以任何数都为0,非0的,同时上下删除同样多的16不去计算
得出下面这样的情况:
4*16*16 + 0 + 0 + 0 + 0 —————————————————————————————————————— 4 + 0 + 4 + 0 + 0 16都不用计算了,非常省事,剩下来把下面的4,随便找一个上面的16除就OK
得出来的最后结果表示为: 4*16*4 再简化一下就是 16*16 =256(K)区域存储容量是256K
第二个问题的解决思维:
存储芯片最小的单位是bit,16K*4bit=64bit,就是说这个芯片能装64bit的数据,8个bit等于1K,那么64bit换算成K就是8K,这个芯片能装8K的数据
那么根据第一个问题的最终结果,256K的数据除以每个芯片能装8K的属于,得出结果,一共需要32个芯片才能装完这些数据!!!
——————————————————————————————————————————————————————————————————
内存地址编码用16进制来代表一个字节,即是里面有8位bit。
芯片与总容量的关系:
先看内存地址从?到?一共有多少个字节(存储单元),再看每个字节(存储单元)存储多少位二进制数。然后这个区域由多少块存储芯片构成?
例子:地址4000H~43FFH;每个单元存16位二进制;这个区域由4块芯片构成;
得出如下信息:可以存放1024个字节,每一个字节称为一个存储单元。 单块芯片容量 乘以 位数 乘以 芯片数量=总容量位数
公式推导:
总字节数*每单元位数=总容量位数
总容量位数 除以 芯片数 再除以位数=单芯片容量
在得知位数的时候,公式可以变成:字节数 除以 芯片数=单芯片字节容量 1024/4=256K
即是:构成单块芯片的容量是:256K*16bit