代码之家  ›  专栏  ›  技术社区  ›  Frank V

计算机系统类和虚拟内存-代数工作[关闭]

  •  -1
  • Frank V  · 技术社区  · 15 年前

    我有一个可能更多的数学问题,但这个问题来自于我在虚拟内存一章中阅读的计算机系统书籍。。。所以我觉得在这里问这个问题是有道理的。

    每个虚拟页面都是 P = 2 P 字节大小。

    我的代数生锈了,这可能是我需要问这个问题的原因。现在,举个例子,我们知道 P = 1024 p 就是简单地确定 将使

    1024 = 2 P
    是吗?

    10 这应该是我的答案。就是 P=1024 p=10 .

    4 回复  |  直到 12 年前
        1
  •  3
  •   Stack Overflow is garbage    15 年前

    对这只是一个和其他方程一样的方程。

        2
  •  2
  •   lavinio    15 年前

    .

    为了解决 p 2 . 解决

    P = log(p, 2)
    

    10 = log(1024, 2)
    

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

    P = log(p) ÷ log(2)
    

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

    希望这有帮助。

        3
  •  0
  •   Mehrdad Afshari    15 年前

    我认为这个问题与编程无关,但无论如何,与编程相反 f(x)=a x g(x)=log(x)/log(a) . 你只需要得到P=1024的以2为底的对数就可以找到 p ,即10。

        4
  •  0
  •   Martin v. Löwis    15 年前

    你要的是二进制对数(ldn)。你可以通过反复除以2来计算它,当你达到1时,你会打破它,并计算你除以的频率(这实际上只是它的整数部分+-1,但对于2的幂,对数是一个自然数)。