计算机系统类和虚拟记忆 - 代数工作

时间:2009-08-09 20:35:41

标签: computer-science virtual-memory algebra

我可能更像是一个数学问题,但这个问题源于在虚拟内存一章中阅读我的计算机系统书...所以我觉得有理由在这里问一下。

这本书指出:

  

每个虚拟页面的大小为 P = 2 p 字节。

我的代数生锈了,这可能是我需要问这个问题的原因。现在,我正在看一个例子,我们知道P = 1024。这是否意味着我可以通过简单地确定哪个p

1024 = 2 p
true来确定p是什么?

如果我的顿悟是真实的,那么1024 = 2 10 应该是我的答案。那是P=1024p=10

4 个答案:

答案 0 :(得分:3)

是肯定的。这只是一个像其他任何一个方程式。

答案 1 :(得分:2)

为了解决p,您需要使用对数函数base 2。解决

P = log(p, 2)

10 = log(1024, 2)

如果你没有可用的方便的对数功能,你可以设置基数,你可以使用它。有趣的是,只要它们是相同的,在两个函数中使用哪个日志库并不重要:

P = log(p) ÷ log(2)

对数是指数的对立面 - 它们只是一种计算必须将数字乘以其自身以获得答案的次数的方法,扩展到支持答案不是原始数字的整数幂的情况

希望这有帮助。

答案 2 :(得分:0)

我认为这个问题是在没有编程相关的边界上,但无论如何,f(x)=a x 的倒数是g(x)=log(x)/log(a)。您只需要获得P = 1024的基数2对数即可找到p,即10。

答案 3 :(得分:0)

你要求的是二进制对数(ld n)。你通过重复除以2来计算它,当你达到1时断开,并计算你划分的频率(实际上只是它的积分部分+ -1,但是对于2的幂,对数是一个自然数)。