Наименьшее целое число больше, чем lg N - PullRequest
6 голосов
/ 14 октября 2010

Я где-то читал, что:

Наименьшее целое число больше lg N количество битов, необходимых для представлять N в двоичном, таким же образом что наименьшее целое число больше log10 N - количество цифр требуется представить N в десятичном виде.

оператор Java

for (lgN = 0; N > 0; lgN++, N /= 2) ; 

- это простой способ вычислить наименьшее целое число больше lg N

Возможно, я что-то здесь упускаю, но как оператор Java вычисляет наименьшее целое число больше lg N?

Ответы [ 11 ]

0 голосов
/ 14 октября 2010

Рассмотрим N в двоичной форме, без всех нулей слева.

Например, для 19 это будет 10011.

Каждое N / = 2 сдвигает этот бит направо:

  • 10011
  • 1001
  • 100
  • 10
  • 1
  • 0

Когда N равно 0, тогда lgN (число шагов) равно log (N).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...