Сколько бит вам нужно, чтобы хранить положительное целое число, например, в миллиардах? Вы должны использовать log2 N, чтобы узнать это?
Сколько бит вам нужно, чтобы хранить положительное целое число?
Ответ 1
Поскольку я видел, как ответ сообщался неправильно столько раз, я думал, что опубликую правильный ответ.
Число бит, необходимых для представления положительного целого n, равно
bits = floor( log2(n) + 1 )
где log2 означает базу данных 2.
Ответ 2
Да. максимальное число, сохраненное в k бит, равно 2 ^ k-1, так как для бит есть 2 ^ k опций, а одно из них равно нулю.
Следовательно, количество бит, необходимое для хранения номера N, равно log2 (N), но поскольку нет половины бита, вам нужно округлить его до целого целого выше.
Примечание: если вам нужно включить отрицательные числа, для знака должен быть еще один бит.
Ответ 3
Чтобы добавить к предыдущему ответу, вы можете выяснить, сколько бит необходимо для представления числа N
математически с использованием любой базы данных. Например, скажите, что я хочу знать, сколько бит необходимо для представления числа 12345, но мой калькулятор знает только ln
(естественный журнал).
Итак,
2^b = 12345
Принимая ln
обеих сторон.
ln(2^b) = ln(12345)
Конечно, лог числа до экспоненты состоит в том, что показатель времени равен log только базы. Итак,
b*ln(2) = ln(12345)
Разделите обе стороны на ln (2),
b = ln(12345) / ln(2)
И, конечно, как указано в другом ответе, вам нужно округлить этот результат, потому что для представления некоторого числа вам нужно, чтобы 2 ^ b было равным или больше этого числа.
Итак,
b = ceil(ln(12345) / ln(2))
Где ceil(f)
округляет f
до ближайшего целого.
Используя вышеупомянутый процесс, вы можете найти количество бит, необходимое для любого числа N
, используя любую базу данных logb
, т.е.
b = ceil(logb(N) / logb(2))