Pergunta

Eu tenho o que pode ser mais uma questão de matemática, mas esta questão é decorrente de ler meus sistemas de computador livro no capítulo sobre a memória virtual ... por isso sinto-me justificado pedindo-lo aqui.

Os estados do livro:

Cada página virtual é P = 2 p bytes em tamanho.

Meu álgebra está enferrujado que é provavelmente a razão que eu preciso para fazer esta. Agora, para um exemplo que eu estou olhando, sabemos que P = 1024. Isso significa que eu posso descobrir o que p é simplesmente identificar quais p fará

1024 = 2 p
verdade?

Se a minha epifania é verdadeiro e correto, então 1024 = 2 10 deve ser a minha resposta. Isso é P=1024 e p=10.

Foi útil?

Solução

Sim. É apenas uma equação como qualquer outro.

Outras dicas

Sim .

A fim de resolver para p você precisa usar a função logaritmo, 2 base. Resolvendo para

P = log(p, 2)

ou

10 = log(1024, 2)

Se você não tem uma função de logaritmo handy-dandy disponível para você que permite definir a base, você pode usar este. Curiosamente, não importa o que log de base você usa nas duas funções, desde que eles são os mesmos:

P = log(p) ÷ log(2)

Logaritmos são os opostos de expoentes - eles são apenas uma maneira de contar o número de vezes que você deve multiplicar um número por si só para obter a resposta, estendido para casos de suporte, onde a resposta não é um poder integrante do número original .

Espero que isso ajude.

Eu acho que esta questão está na fronteira de não programação relacionada, mas de qualquer maneira, o inverso da f(x)=a x é g(x)=log(x)/log(a). Você só precisa obter o logaritmo de base 2 P = 1024 para encontrar p, que é de 10.

O que você está pedindo é o logaritmo binário (ld n). Você calcular isso dividindo repetidamente por 2, quebrando quando você chegar a 1 e contagem de quantas vezes você ter dividido (que é, na verdade, apenas a parte integrante + -1, mas para uma potência de dois, o logaritmo é um número natural).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top