Linux 用虚拟地址(逻辑地址)计算物理地址(十进制 & 十六进制)

十进制

假设页面大小为4096k,内存大小为4G,逻辑地址4832(d),请根据下面页表计算物理地址

页号块号
02
13
25
37

答:计算公式:块号 * 页面大小 + 页偏移量 = 物理地址
页号 = 逻辑地址 / 页面大小 => 4832 / 4096 = 1
页偏移量 = 逻辑地址 % 页面大小 => 4832 % 4096 = 736
根据页表用页号找到相对应的块号
物理地址 = 3 * 4096 + 736 = 13024

十六进制

假设页面大小为1k,内存大小为4G,逻辑地址3B7(H),请根据下面页表计算物理地址

页号块号
0H1CH
1H36H
2HA5H
3H22H

答:
1、先将16进制转化为2进制
0000 0000 0000 0000 0000 0011 1011 0111
2、页面大小为1k,也就是2^10,所以低10位是页偏移量,高22位为页号。所以11 1011 0111为页偏移量,0位页号
3、通过页号找到相对应的块号,1CH => 0001 1100
4、用二进制拼接物理地址(0001 1100 11 1011 0111)
5、将拼接的物理地址高位补0,再转化为16进制
物理地址(0000 0000 0000 0000 0111 0011 1011 0111) = 73B7(H)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WhiteShirtI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值