无法了解如何将虚拟地址转换为二进制格式

时间:2019-12-09 01:21:00

标签: binary operating-system virtual-address-space

这是我的操作系统教科书中的一个问题和答案:

问题:

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/

我还是有所不同。

我只是很困惑如何将虚拟地址转换为二进制形式……

谢谢!

1 个答案:

答案 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
           ...