2010-11-06 3 views
2

Я читал статью о двоичных числах, и у нее были некоторые проблемы с практикой в ​​конце, но она не давала решения проблем. Последнее: «Сколько бит требуется для представления алфавита?». Можете сказать мне ответ на этот вопрос и кратко объяснить, почему? Спасибо.Как использовать алфавитные двоичные символы

ответ

4

Вам понадобятся только 5 бит, потому что вы считаете 26 (если взять только буквы верхнего или нижнего регистра). 5 бит будут считаться до 31, поэтому у вас на самом деле больше места, чем вам нужно. Вы не можете использовать 4, потому что это значение считается равным 15.

Если вы хотите получить как верхний, так и нижний регистр, то 6 бит - ваш ответ - 6 бит будут счастливы рассчитывать до 63, а ваш двойной алфавит имеет (2 * 24 = 48) персонажей, снова оставляя большой запас.

+0

Старые 5-битные телеграфные коды, представленные более чем 50 различными символами в 5 бит. Вы можете использовать тот же метод для кодирования алфавита всего за 4 бита. (Да, это обман ...) – Porculus

+0

@Porculus - 4 бита было бы здорово, если бы двоичный был с плавающей точкой! (4.7 бит) – Bojangles

+0

Хорошо спасибо всем. Я тоже получил 5 бит, но я думал, что это будет легко, но, видимо, я был прав. – agentbanks217

3

Это зависит от вашего определения алфавита. Если вы хотите представить один символ из 26-буквенного латинского алфавита (A-Z), вам понадобится log2 (26) = 4.7 бит. Очевидно, на практике вам понадобятся 5 бит.

Однако, учитывая бесконечный поток символов, теоретически может возникнуть схема кодирования, которая близка к 4.7 битам (там просто не будет сопоставлено взаимно однозначное сопоставление между отдельными символами и битовыми векторами).

Если вы говорите о представлении фактического человеческого языка, то вы можете уйти с гораздо меньшим числом, чем это (в области 1,5 бит/символ) из-за избыточности. Но это слишком сложно, чтобы войти в один пост здесь ... (ключевые слова Google - «энтропия» и «информационный контент»).

+0

Гораздо более описательный, чем мой пост (ниже) - спасибо за информацию :) – Bojangles

2

В алфавите есть 26 букв, поэтому вы 2^5 = 32 - это минимальная длина слова, чем все буквы.

0

Каким прямым должно быть представление? Если вам нужно 1: 1 без слоя перевода, тогда сделают 5 бит. Но если уровень перевода является опцией, то вы можете избежать неприятностей. Например, код Морзе может сделать это в 3 битах. :)