升级版的说明
–升级了一下图片;增加了对按字节编制的默认设定的说明,免得引起误导;去掉了之前评论区有人说单位的问题。
老版链接:
http://t.csdn.cn/pYIXD
小白的疑惑
小白刚开始学习的时候很疑惑,为什么20位地址总线决定了寻址空间的大小是1MB?
解决疑惑需要先带入的设定
为了解决这个疑惑,先听我讲一个故事,请完全带入设定:
在某个世界里,大家很喜欢养猪。
这个世界的独特之处在于,养猪的房间都是长条形的固定样式的,且一个房间只能有8个小隔间,一个隔间只能养一只猪,即,一个房间只能养八只猪
小k也很喜欢养猪,他有64只猪
但是这个世界还有一个奇葩设定,他们的语言里面,只有0和1这两个符号。
所以,房间2不能叫房间2,而是要叫房间10;假设我们用只有0和1两张纸的这种记分牌来表示房间号,则要表示8个房间的话,至少需要↓如下,3个位置的纸张
现在我问你,小o家养养猪的房间号码刚好用三张条条能够完成编号以及小o的每个房间养满了八只猪的情况下,你能看出小o家有多少只猪吗?
你会回答:
3个条条,可以表示 2 3 = 8 2^{3}=8 23=8个房间,一个房间8只猪,就是8*8=64只猪
接下来:在小k的世界里面,大家都养猪,一开始的沟通是这样婶的:
后来养猪多了以后,是这样婶的
终极进化,是这样的
在上面的沟通中,默认一个房间养满8只猪
现在看一下猪猪例子与计算机的对应
相关知识:
现在计算机的存储空间一般都是按照字节编址,最早的时候其实不是,只是后来发现按字节编址比较好,就变成一种默认的定律了(例如ascii码里面一个字符是用8位二进制数来表示,所以我一个房间装8只猪,即计算机按1B=8bit来编址,那我每次都同时把一个房间里面的8只猪取出来,然后看这8只猪身上连起来代表了什么意思)
总结
官话:20位地址总线决定了寻址空间的大小是1MB
猪猪世界话:20张条条可以表示多少只猪?
2 20 个房间 × 一个房间 8 只猪 = 2 20 × 8 b i t = 2 20 B 2^{20}个房间\times一个房间8只猪=2^{20}\times8 bit=2^{20}B 220个房间×一个房间8只猪=220×8bit=220B
翻译:
20位地址总线→20张条条可以用来表示房间号
寻址空间的大小→20张条条能表示的房间都养满猪后的猪的只数。就是有几只猪。
一个隔间的猪=1bit
一个房间8只猪=1B=8bit
注意事项
有意见可以友善提出,虽然我也是杠精,但是这里主要是为了简单快速入门理解这个问题,不要杠一些过于细节的东西,可以补充设定之类的