Сколько значений может быть представлено с n битами?
Например, если n=9
, то сколько разных значений может быть представлено в 9 двоичных разрядах (бит)?
Мое мышление заключается в том, что если я установил каждый из этих 9 бит в 1, я сделаю максимально возможное число, которое эти 9 цифр могут представлять. Поэтому самое высокое значение 1 1111 1111
, которое равно 511
в десятичной системе. Я заключаю, что поэтому 9 цифр двоичного кода могут представлять 511 разных значений.
Правильно ли мой мыслительный процесс? Если нет, может ли кто-нибудь объяснить, что мне не хватает? Как я могу обобщить его на бит n
?
Ответы
Ответ 1
2 9= 512 значений, поскольку это количество комбинаций нулей и единиц, которые вы можете иметь.
Однако эти значения будут зависеть от используемой вами системы. Если это целое число без знака, у вас будет:
000000000 = 0 (min)
000000001 = 1
...
111111110 = 510
111111111 = 511 (max)
В два дополнения, которые обычно используются для представления целых чисел в двоичном формате, вы будете иметь:
000000000 = 0
000000001 = 1
...
011111110 = 254
011111111 = 255 (max)
100000000 = -256 (min) <- yay integer overflow
100000001 = -255
...
111111110 = -2
111111111 = -1
В общем, с k бит вы можете представить значения 2 k. Их диапазон будет зависеть от используемой вами системы:
Без подписи: от 0 до 2 k -1
Подписано: -2 k-1 до 2 k-1 -1
Ответ 2
Что вам не хватает: Zero - это значение
Ответ 3
Лучший способ решить это - начать небольшой.
Давайте начнем с 1 бит. Это может быть 1
или 0
. Это 2 значения, или 10
в двоичном формате.
Теперь два бита, которые могут быть 00
, 01
, 10
или 11
Это 4 значения или 100
в двоичном формате... См. шаблон?
Ответ 4
Хорошо, так как он уже "просочился": вам не хватает нуля, поэтому правильный ответ 512
(511 - самый большой, но от 0 до 511, а не от 1 до 511).
Кстати, хорошим упражнением было бы обобщение этого:
How many different values can be represented in n binary digits (bits)?
Ответ 5
Не желая дать вам ответ, вот логика.
У вас есть 2 возможных значения в каждой цифре. у вас их 9.
как в базе 10, где у вас есть 10 разных значений по цифре, говорят, что у вас есть 2 из них (что составляет от 0 до 99): от 0 до 99 составляет 100 номеров. если вы выполняете вычисление, у вас есть экспоненциальная функция
base^numberOfDigits:
10^2 = 100 ;
2^9 = 512
Ответ 6
Там более простой способ подумать об этом. Начните с 1 бит. Это, очевидно, может представлять 2 значения (0 или 1). Что происходит, когда мы добавляем немного? Теперь мы можем представить в два раза больше значений: значения, которые мы могли бы представить ранее, с добавлением 0 и значениями, которые мы могли бы представить с помощью добавления 1.
Таким образом, число значений, которые мы можем представить с n битами, равно 2 ^ n (2 до степени n)
Ответ 7
То, что вам не хватает, - это какая схема кодирования используется. Существуют различные способы кодирования двоичных чисел. Посмотрите на подписанные числа. Для 9 бит диапазоны и количество номеров, которые могут быть представлены, будут различаться в зависимости от используемой системы.
Ответ 8
(Как правило, с помощью k битов вы можете представлять 2 ^ k значений.) Можем ли мы рассмотреть это правило для других основ, таких как троичные, десятичные... и т.д.? например, сколько значений может быть представлено 7-значным троичным? а на 17 цифр с базой 7?