二进制形式的虚拟内存地址

时间:2014-04-14 08:16:16

标签: operating-system virtual-memory

请帮助我,我正在研究操作系统。在虚拟内存下我发现了这个: 用户进程生成虚拟地址11123456.并且据说二进制形式的虚拟地址是0001 0001 0001 0010 0011 0100 0101 0110.如何转换,因为当我将11123456转换为bin时我得到0001 0101 0011 0111 0110 000 0000。据说虚拟内存是通过分页实现的,页面大小是4096字节

2 个答案:

答案 0 :(得分:2)

您假设11123456是十进制数,而根据结果它是十六进制数。通常,在CS中很少使用十进制数,以2为单位的表示更加通用和方便。今天使用的主要是基数16(十六进制)和2(二进制)。

答案 1 :(得分:1)

转换为二进制文件可能有助于识别页码和偏移量,以便您可以计算与逻辑地址对应的物理地址。如果你是CS学生,如果你能理解如何做到这一点应该是好的。

对于特定问题,即分页,您可以从逻辑地址转换为物理地址,而无需使用模数(%)和除(/)运算符转换为二进制。但是,以二进制方式做事是最初的方式。

在您的问题中,值11123456应为十六进制数,应写为0x11123456以区分十进制数。从二进制格式“0001 0001 0001 0010 0011 0100 0101 0110”,我们可以推断逻辑地址的偏移量是“0100 0101 0110”(最右边的12位,或十进制的132182,或十六进制的0x20456)和页面number为“0001 0001 0001 0010 0011”(其余位,十进制为69923,十六进制为0x11123)。