鱼C论坛

 找回密码
 立即注册
查看: 2604|回复: 10

[已解决]有个一直搞不明白的地方。。[新手问题]

[复制链接]
发表于 2015-11-1 18:20:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一个内存单元=1B  也就是  一个内存单元=8bit  
那8bit能组成2^8=256 个地址
也就是说所有的内存单元只能有256个地址吧?
而且现在的内存单元 `ZDEBWBPNF7B59`H)U34_`2.png
都不是1B的啊

求解求解。。
最佳答案
2015-11-30 19:33:11
楼主的理解很有问题 首先你混淆了两个问题
对应一个内存单元的地址 和一个内存单元中存储的数据
一个内存单元的大小是1Byte=8bit
一个bit就是可以放一个0或1 也就是可以存放0,1两个数
8个bit 就可以放2^8=256种0和1的组合 也就是可以存放256个不同的数,十进制就是从0到255
换句话说一个内存单元就最多能存储最大的数是255
这个8bit 跟地址没有半毛钱关系
能寻找多少个地址 跟地址总线宽度有关系 也就是跟连接CPU到内存的那根“地址总线”的数量
一根可以发两个信号也就是1或0 可以指定两个地址 一个地址可以定位一个内存单元 也就是定位一个Byte
N根总线 就是2^N个地址

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-1 20:59:30 | 显示全部楼层
打印出来的有虚拟内存地址,虚拟内存地址与物理地址建立映射关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-2 13:01:39 | 显示全部楼层
16进制的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-4 07:15:06 | 显示全部楼层
从数据传输的角度来看:CPU可用内存单元的大小是看地址总线的宽度的,也就是说看地址总线有几位,如果有10位,那CPU就可以寻址就是2^10个byte大小的内存地址空间。
从CPU的角度来看:内存地址=段地址*16 + 偏移地址;所以不止是8bit
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2015-11-29 20:18:11 | 显示全部楼层
小扇子 发表于 2015-11-4 07:15
从数据传输的角度来看:CPU可用内存单元的大小是看地址总线的宽度的,也就是说看地址总线有几位,如果有10 ...


段地址*16+偏移地址   
段地址 和 偏移地址 都有 256吧?   
那组合起来  256^256=XXXXX       就怎么多个?
可不是说 一条地址是1B吗?  我说的是地址本身的这个数据是1B
00000001   这个地址是1B                    我不是说里面的数据
01010101   这个地址也是1B
不知道是不是这样??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-29 22:44:43 From FishC Mobile | 显示全部楼层
段地址*16+偏移地址,十六进制的段地址*16 就是向左移动1位再加偏移地址就等于20位的物理地址。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-29 22:47:14 From FishC Mobile | 显示全部楼层
0~fffff
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-30 00:30:54 | 显示全部楼层
支持!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-30 16:40:55 | 显示全部楼层
740641642 发表于 2015-11-29 20:18
段地址*16+偏移地址   
段地址 和 偏移地址 都有 256吧?   
那组合起来  256^256=XXXXX       就怎 ...

一个内存单元是1B 比如0001:0000即00010
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-30 17:28:00 | 显示全部楼层
内存单元在计算机里面显示出来的不是十六进制的数据吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-30 19:33:11 | 显示全部楼层    本楼为最佳答案   
楼主的理解很有问题 首先你混淆了两个问题
对应一个内存单元的地址 和一个内存单元中存储的数据
一个内存单元的大小是1Byte=8bit
一个bit就是可以放一个0或1 也就是可以存放0,1两个数
8个bit 就可以放2^8=256种0和1的组合 也就是可以存放256个不同的数,十进制就是从0到255
换句话说一个内存单元就最多能存储最大的数是255
这个8bit 跟地址没有半毛钱关系
能寻找多少个地址 跟地址总线宽度有关系 也就是跟连接CPU到内存的那根“地址总线”的数量
一根可以发两个信号也就是1或0 可以指定两个地址 一个地址可以定位一个内存单元 也就是定位一个Byte
N根总线 就是2^N个地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-19 06:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表