Сколько бит вам нужно, чтобы хранить положительное целое число?

Сколько бит вам нужно, чтобы хранить положительное целое число, например, в миллиардах? Вы должны использовать 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))