这是我的操作系统教科书中的一个问题和答案:
问题:
A certain computer provides its users with a virtual-memory space of 232 bytes.
The computer has 218 bytes of physical memory. The virtual memory is implemented by paging,
and the page size is 4096 bytes. A user process generates the virtual address 11123456.
Explain how the system establishes the corresponding physical location.
Distinguish between software and hardware operations.
答案:
The virtual address in binary form is
0001 0001 0001 0010 0011 0100 0101 0110
当我将“ 11123456”插入十进制到二进制转换器(例如:https://www.rapidtables.com/convert/number/decimal-to-binary.html)时,结果是:101010011011101100000000
与书中答案不同。
此外,当我使用类似此处的方法手动转换时:https://indepth.dev/the-simple-math-behind-decimal-binary-conversion-algorithms/
我还是有所不同。
我只是很困惑如何将虚拟地址转换为二进制形式……
谢谢!
答案 0 :(得分:0)
您认为
11123456
是 十进制数字 ,但不是。数字的计算机表示形式为 二进制,八进制或十六进制 。在这种情况下为十六进制。如果将上述数字从十六进制转换为二进制形式,则会得到结果:
0001 0001 0001 0010 0011 0100 0101 0110
说明:
Hexadecimal -> Binary
1 -> 0001
2 -> 0010
3 -> 0011
4 -> 0100
5 -> 0101
6 -> 0110
...