Почему количество битов в двоичном представлении десятичного числа 16 == 5?

Этот вопрос, вероятно, не типичный stackoverflow, но я не уверен, где задать этот мой небольшой вопрос.

Проблема:

Найдите количество битов в двоичном представлении десятичного числа 16?

Теперь я попытался решить эту задачу, используя формулу $2^n = 16 \Rightarrow n = 4$, но правильный ответ, предложенный моим модулем, равен 5. Кто-нибудь может объяснить, как это сделать?


Прочитав какой-то ответ (а также у меня есть еще 10 минут, прежде чем я смогу принять правильный ответ), я думаю, что это, вероятно, объяснение, которое будет соответствовать математической формуле,

Для представления 16 нам нужно представить 17 символов (0,16), поэтому $2^n = 17 \Rightarrow n = 4.08746$, но поскольку n должно быть целым числом, тогда $n = 5$


person Quixotic    schedule 16.12.2010    source источник
comment
ответ кажется 5? Что это значит? Кто-нибудь может объяснить?   -  person S.Lott    schedule 16.12.2010
comment
Я полагаю, вам просто нужно понять, что Ceil(log2(num)) дает вам количество битов, необходимых для выражения num чисел. Не номер num. Разница 1:P   -  person Noon Silk    schedule 16.12.2010
comment
Сколько цифр вам нужно, чтобы выразить десятичное представление числа 100?   -  person Tom Anderson    schedule 01.05.2012


Ответы (4)


Подумайте о том, как работает двоичный код:

Bit 1: Add 1
Bit 2: Add 2
Bit 3: Add 4
Bit 4: Add 8
Bit 5: Add 16

Таким образом, 16 будет: 10000

person Dark Falcon    schedule 16.12.2010

С помощью 4 бит вы можете представлять числа от 0 до 15.

Так что да, вам нужно 5 бит для представления 16.

person LaGrandMere    schedule 16.12.2010

Decimal - 16 8 4 2 1
Binary -   1 0 0 0 0

Таким образом, для всего до десятичного числа 31 вам нужно всего 5 бит.

person Dave D    schedule 16.12.2010

Это классическая ошибка ограждения.

Как известно, компьютеры любят начинать отсчет с 0.

Таким образом, чтобы представить 16, вам нужны биты 0, 1, 2, 3 и 4 (= пол (log2 (16))).

Но чтобы на самом деле содержать биты от 0 до 4, вам нужно 5 бит.

person Neil    schedule 30.04.2012