为什么20位数据总线决定寻址空间是2^20B,即1MB,而不是2^20/2^3=2^17B????

升级版的说明

–升级了一下图片;增加了对按字节编制的默认设定的说明,免得引起误导;去掉了之前评论区有人说单位的问题。

老版链接:

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

注意事项

有意见可以友善提出,虽然我也是杠精,但是这里主要是为了简单快速入门理解这个问题,不要杠一些过于细节的东西,可以补充设定之类的

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值