Сколько бит необходимо для хранения на диске слова информатика в системе кодирования ascii

Обновлено: 07.07.2024

Анализируя информацию, мы сталкиваемся с необходимостью определения качества и определения количества полученной информации. Определить качество информации чрезвычайно сложно, а часто и вообще невозможно. Какие-либо сведения, например исторические, могут десятилетиями считаться ненужными и вдруг их ценность может резко возрасти.

Вместе с тем определить количество информации не только можно, но и нужно. Это необходимо для того, чтобы сравнить друг с другом различные массивы информации, а также определить, какие размеры должны иметь материальные объекты (бумага, магнитные носители и т.д.), хранящие эту информацию.

Далее, говоря об измерении информации, мы будем иметь в виду определение ее количества.

Единая форма кодирования и измерения количества информации

Как измерять количество информации? Для этого нужно иметь универсальный способ, позволяющий представить любую ее форму (текстовую, графическую и др.) в едином стандартном виде.

За такой способ принята так называемая двоичная форма представления информации. Она заключается в записи любой информации в виде последовательности только двух символов: 0 и 1 (то есть в виде двоичных чисел) и с технической точки зрения наиболее проста и удобна (есть ток/нет тока, намагничено/размагничено, высокое напряжение/низкое напряжение).

Рассмотрим сначала одноразрядное двоичное число – бит. Оно может принимать два различных значения: 0 и 1

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

К = 2 n °, где n – число разрядов двоичного числа.

В общем случае, верно, что чем больше различных видов однотипной информации требуется закодировать, тем больше разрядов двоичного числа (бит) требуется.

Единицы измерения информации

Таким образом, можно утверждать: информацию можно измерять в битах, то есть в количестве двоичных разрядов. Бит является наименьшей единицей измерения количества информации.

Представление текстовой информации в компьютере. Кодовые таблицы

Каждому символу ставится в соответствие двоичное число, причем таким образом, что чем дальше символ расположен от начала алфавита, тем больше значение двоичного числа, которое является кодом данного символа. Сколько разрядов (бит) требуется, чтобы закодировать все буквы, знаки препинания, математические и специальные символы? Легко подсчитать:

  • кириллица (большие и малые буквы) - 66;
  • латинские (большие и малые буквы) - 52;
  • цифры - 10;
  • знаки препинания (. , : ; ‘ « ! ? -) - 9;
  • знаки математических операций (+ - * / ^) - 5.

Таблица кодирования ASCII

Как мы уже выяснили, традиционно для кодирования одного символа используется 8 бит. И, когда люди определились с количеством бит, им осталось договориться о том, каким кодом кодировать тот или иной символ, чтобы не получилось путаницы, т.е. необходимо было выработать стандарт – все коды символов сохранить в специальной таблице кодов. В первые годы развития вычислительной техники таких стандартов не существовало, а сейчас наоборот, их стало очень много, но они противоречивы. Первыми решили эти проблемы в США, в Институте стандартизации. Этот институт ввел в действие таблицу кодов ASCII (American Standard Code for Information Interchange – стандартный код информационного обмена США).

Рассмотрим таблицу кодов ASCII:






Таблица ASCII разделена на две части. Первая – стандартная – содержит коды от 0 до 127. Вторая – расширенная – содержит символы с кодами от 128 до 255.

Первые 32 кода отданы производителям аппаратных средств и называются они управляющие, т.к. эти коды управляют выводом данных. Им не соответствуют никакие символы.

Коды с 32 по 127 соответствуют символам английского алфавита, знакам препинания, цифрам, арифметическим действиям и некоторым вспомогательным символам.

Коды расширенной части таблицы ASCII отданы под символы национальных алфавитов, символы псевдографики и научные символы.

Все буквы расположены в них по алфавиту, а цифры – по возрастанию. Этот принцип последовательного кодирования позволяет определить код символа, не заглядывая в таблицу.

Коды цифр берутся из этой таблицы только при вводе и выводе и если они используются в тексте. Если же они участвуют в вычислениях, то переводятся в двоичную систему счисления.

Альтернативные системы кодирования кириллицы

  • Система кодирования КОИ-7 (код обмена информацией, семизначный), действовавшая в СССР. Была вскоре вытеснена американским кодом ASCII во вторую, расширенную часть системы кодирования с кодами от 128 по 255.
  • Кодировка Windows-1251. Была введена извне компанией Microsoft Так как программный продукт этой компании – операционная система Windows глубоко закрепилась и широко распространилась, то кодировка Windows-1251 получила широкое применение на компьютерах, работающих под управлением именно этой операционной системы.
  • Кодировка КОИ-8 широко распространена на территории России и в российском секторе Интернета.
  • Кодировка ISO (International Standard Organization — Международный институт стандартизации) – содержит символы русского алфавита, но на практике используется редко.
  • Кодировка ГОСТ – альтернативная. Действует на компьютерах в операционных системах MS-DOS.

Таблица Unicode разделена на несколько областей. Область с кодами от 0000 до 007F содержит символы набора Latin 1 (младшие байты соответствуют кодировке ISO 8859-1). Далее идут области, в которых расположены знаки различных письменностей, а также знаки пунктуации и технические символы. Часть кодов зарезервирована для использования в будущем (29000). 6000 кодовых комбинаций оставлено программистам.

Символам кириллицы выделены коды в диапазоне от 0400 до 0451.

Использование Unicode значительно упрощает создание многоязычных документов, публикаций и программных приложений.

Решение задач

1. Закодируйте с помощью ASCII слово: МИР

Решение: открываем таблицу ASCII,
по таблице ищем букву М, её код 204
по таблице ищем букву И, её код 200
по таблице ищем букву Р, её код 208

Ответ: код слова МИР – 204 200 208

2. Декодируйте тексты, заданные десятичным кодом: 192 203 195 206 208 200 210 204

Решение: открываем таблицу ASCII, в таблице ищем коды и соответствующую им букву:
192 – А; 203 – Л; 195 – Г; 206 – О; 208 – Р; 200 – И; 210 – Т; 204 – М, т. е. получили слово: АЛГОРИТМ

Ответ: 192 203 195 206 208 200 210 204 – АЛГОРТИМ

3. Десятичный код буквы «I» в таблице ASCII равен 73. Не пользуясь таблицей, составьте последовательность кодов, соответствующих слову MIR

Решение: Зная, что все буквы расположены по алфавиту, а цифры по возрастанию делаем следующие выводы: I – 73, J – 74, K – 75, L – 76, M – 77, N – 78, O – 79, P – 80, Q – 81, R – 82

Ответ: MIR – 77 73 82

4. Каков информационный объём текста, содержащего слово МИР:

Зная, что в 16-битовой кодировке 1 символ – 16 бит делаем следующие выводы:
МИР – 3 символа = 48 бит (3*16)

Ответ: а) 48 бит; б) 24 бит.

5. Текст занимает полных 2 страницы. На каждой странице размещается 45 строк по 45 символов. Определить объём оперативной памяти, который займёт этот текст.

Решение: Мы знаем, что 1 символ – 8бит – 1 байт , значит нам нужно найти кол-во символов данного текста: 2 страницы*45 строк*45 символов = 4050 символов = 4050 байт

Ответ: 4050 байт

Кодирование графической информации

Общие понятия о графической информации

Графическая информация представляет собой изображение, сформированное из определенного числа точек – пикселей. Добавим к этой информации новые сведения. Процесс разбиения изображения на отдельные маленькие фрагменты (точки) называется пространственной дискретизацией. Ее можно сравнить с построением рисунка из мозаики. При этом каждой мозаике (точке) присваивается код цвета.

От количества точек зависит качество изображения. Оно тем выше, чем меньше размер точки и соответственно большее их количество составляет изображение. Такое количество точек называется разрешающей способностью и обычно существуют четыре основных значений этого параметра: 640x480, 800x600, 1024x768, 1280x1024.

Качество изображения зависит также от количества цветов, т.е. от количества возможных состояний точек изображения, т.к. при этом каждая точка несет большее количество информации. Используемый набор цветов образует палитру цветов.

Кодирование цвета

Рассмотрим, каким образом происходит кодирование цвета точек. Для кодирования цвета применяется принцип разложения цвета на составляющие. Их три: красный цвет (Red, R), синий (Blue, В) и зелёный (Green, G). Смешивая эти составляющие, можно получать различные оттенки и цвета – от белого до черного.

Сколько бит необходимо выделить для каждой составляющей, чтобы при кодировании изображения его качество было наилучшим?

Если рисунок черно-белый, то общепринятым на сегодняшний день считается представление его в виде комбинации точек с 256 градациями серого, т.е. для кодирования точки достаточно 1 байта.

Если же изображение цветное, то с помощью 1 байта можно также закодировать 256 разных оттенков цветов. Этого достаточно для рисования изображений типа тех, что мы видим в мультфильмах. Для изображений же живой природы этого недостаточно. Если увеличить количество байт до двух (16 бит), то цветов станет в два раза больше, т.е. 65536. Это уже похоже на то, что мы видим на фотографиях и на картинках в журналах, но все равно хуже, чем в живой природе. Увеличим еще количество байтов до трех (24 бита). В этом случае можно закодировать 16,5 миллионов различных цветов. Именно такой режим позволяет работать с изображениями наилучшего качества.

Количество бит, необходимое для кодирования цвета точки называется глубиной цвета. Наиболее распространенными значениями глубины цвета являются 4, 8, 16 и 24 бита на точку.

Количество цветов можно вычислить по формуле: N=2 I , где I – глубина цвета.

  • 00000000 – минимальная интенсивность, соответствующая полному отсутствию данного цвета;
  • 11111111 – максимальная интенсивность, соответствующая присутствию данного цвета целиком;
  • 11110000 – средняя интенсивность, соответствующая более светлому оттенку данного цвета.

Решение задач

1. Какой объём видеопамяти необходим для хранения четырёх страниц изображения при условии, что разрешающая способность дисплея равна 640Х480 точек, а используемых цветов – 32?

  • RS – разрешающая способность (в нашем случае RS = 640Х480);
  • I – глубина (в нашем случае – неизвестно);
  • KS – количество страниц (в нашем случае KS = 4).

Для нахождения I воспользуемся формулой: N=2 I ,
где I – глубина цвета,
N – количество цветов (у нас 32).
Следовательно: 32 = 2 I и значит I = 5 бит.

Теперь все параметры нам известны, находим объём:

V = 640*480*5*4 =6144000 бит = 750 Кбайт (т.к. в 1 байте – 8 бит и в 1 Кбайте – 1024 байт)

Ответ: 750 Кбайт

2. 256-цветный рисунок содержит 1 Кбайт информации. Из скольки точек он состоит?

Решение: Найдём информационный объём одной точки: N = 2 I , 256 = 2 I , I = 8 бит (глубина)

Переведём известный объём в биты: 1Кбайт = 1024 байт*8бит = 8192 бит

Зная глубину и объём находим количество точек на изображении: 8192:8 = 1024 точек

Ответ: 1024 точек

Кодирование звуковой информации

Оцифровка звука

Звук представляет собой звуковую волну с непрерывно меняющейся амплитудой и частотой. Для человека звук тем громче, чем больше амплитуда сигнала, и тем выше тон, чем больше частота сигнала. Непрерывный сигнал не несет в себе информации, поэтому он должен быть превращен в последовательность двоичных нулей и единиц – двоичный (цифровой) код.

Оцифровку звука выполняет специальное устройство на звуковой плате. Называется оно аналого-цифровой преобразователь (АЦП). Обратный процесс – воспроизведение закодированного звука производится с помощью цифро-аналогового преобразователя (ЦАП).

Весь процесс кодирования и декодирования представить в виде следующей схемы:

Схема кодирования звука:



В процессе кодирования непрерывного звукового сигнала производится дискретизация по времени, или, как говорят, «временная дискретизация». Звуковая волна разбивается на отдельные маленькие временные участки и для каждого участка устанавливается определенная величина амплитуд. Данный метод называется импульсно-амплитудной модуляцией РСМ Code Modulation).


Таким образом, гладкая кривая заменяется на последовательность «ступенек».. Каждой «ступеньке» присваивается значение громкости звука (1, 2, 3). Чем больше «ступенек», тем большее количество уровней громкости выделено в процессе кодирования, и тем большее количество информации будет нести значение каждого уровня и более качественным будет звучание.

Характеристики оцифрованного звука

Качество звука зависит от двух характеристик – глубины кодирования и частоты дискретизации. Рассмотрим эти характеристики.

Глубина кодирования звука (I) — это количество бит, используемое для кодирования различных уровней сигнала или состояний. Тогда общее количество таких состояний или уровней (N) можно вычислить по формуле: N=2 I .

Современные звуковые карты обеспечивают 16-битную глубину кодирования звука, и тогда общее количество различных уровней будет: N=2 16 = 65536.

Частота дискретизации (М) – это количество измерений уровня звукового сигнала в единицу времени. Эта характеристика показывает качество звучания и точность процедуры двоичного кодирования. Измеряется в герцах (Гц). Одно измерение за одну секунду соответствует частоте 1 Гц, 1000 измерений за одну секунду – 1 килогерц (кГц). Частота дискретизации звукового сигнала может принимать значения от 8 до 48 кГц. При частоте 8 кГц качество дискретизированного звукового сигнала соответствует качеству радиотрансляции, а при частоте 48 кГц – качеству звучания аудио-CD.

Высокое качество звучания достигается при частоте дискретизации 44,1 кГц и глубины кодирования звука, равной 16 бит. Для мрачного, приглушенного звука характерны следующие параметры: частота дискретизации – 11 кГц, глубина кодирования – 8 бит.

Решение задач

1. Определить объём памяти для хранения моноаудиофайла, время звучания которого составляет пять минут при частоте дискретизации 44 кГц и глубине кодирования 16 бит.

Решение: Воспользуемся формулой: V = M*I*t

В нашем случае М = 44 кГц = 44000 Гц
I = 16 бит
t = 5 минут,
подставляем в формулу и получаем:
V = 44000*16*5 = 3520000 бит = 430 Кбайт (примерно)

Если бы этот вопрос задали моему ребенку на уроке информатики, то я бы, чтобы помочь ему получить хорошую оценку, ответил, что 88. Сейчас объясню, как обосновать этот ответ в школе, и почему он при этом не совсем правильный, а в настоящем программировании всё сложнее.

В слове "информатика" 11 букв. Каждую букву мы можем закодировать одним байтом. В одном байте 8 бит, поэтому ответ 11х8=88.

Как это проверить? Очень просто, запустите на компьютере "Блокнот" (я предполагаю, что у вас Windows), напечатайте в нём это слово и сохраните в текстовый файл. Кликните правой кнопкой, выберите "свойства", видите? Размер: 11 байт (то есть 88 бит).

Теперь о том, почему в реальности всё сложнее. Мы выше написали, что каждую букву мы закодируем одним байтом. Всего разных символов у нас, таким образом, может быть максимум столько, сколько разных значений у одного байта, то есть 2 в восьмой степени, 256. Это значит, что все буквы всех алфавитов мира в один байт точно не влезут. Даже одни только японские или китайские иероглифы в один байт не вмещаются.

То есть кодировка, какому значению байта соответствует какая буква, это вовсе не универсальная штука, они бывают разные. В "Блокноте" и много где ещё в Windows используется кодировка Windows-1251 (это если вы в России живете, в других странах другие). В некоторых кодировках слово "информатика" просто нельзя записать. А в Windows-1251 нельзя записать слово 信息学. Если вы свой текстовый файлик, содержащий слово "информатика", пришлёте китайцу, он, открыв его, увидит какую-то абракадабру, и наоборот. Так что ответ "11 байт или 88 бит" предполагает, что мы с получателем используем одну и ту же однобайтовую кодировку, содержащую кириллические буквы.

А есть такой стандарт кодирования, в котором можно написать что угодно и не устраивать вот этих сложностей? Как ни странно, есть! Он называется Unicode, и в ней каждому символу всех алфавитов Земли (даже вымершим языкам, даже египетским иероглифам, даже смайликам и эмоджи) присвоен свой код. Естественно, в нём много тысяч символов и в один байт всё это не влезет. Unicode можно для компьютера кодировать по-разному, но самый популярный вариант устроен так. В нём самые распространенные символы (цифры, точки-запятые-скобки и буквы латинского алфавита) занимают один байт, чуть менее распространенные (кириллические буквы, а также всякие там Ä и π) два байта, а всякая экзотика вроде индейских узелковых письменностей и четыре может занимать.

С каждым годом Unicode становится всё более популярным, а "старые" кодировки вроде Windows 1251, господствовавшие, когда писался школьный учебник по информатике, уходят на второй план. Так что по-честному я бы ответил, что в слове "информатика" 22 байта = 176 бит, ну, насколько уж этот вопрос вообще имеет смысл.

Для хранения на диске слова ПРОГРАММИРОВАНИЕ в системе кодирования ASCII необходимо бит.


На каждый символ приходится по байту.

1 байт = 8 битов.

Так как в данном слове 16 символов, то 16 умножаем на 8 = 128 бит.


Информационный объем слова ФАКУЛЬТЕТ в системе кодирования Unicode составляет ?

Информационный объем слова ФАКУЛЬТЕТ в системе кодирования Unicode составляет ?


Anatoliy228 24 июн. 2020 г., 20:58:05 | 5 - 9 классы

Для кодирования четырехцветной графической информации на 1 пиксель необходимо : A?

Для кодирования четырехцветной графической информации на 1 пиксель необходимо : A.


Для хранения на диске слова СИНУСОИДА в системе кодирования ASCII необходимо ?

Для хранения на диске слова СИНУСОИДА в системе кодирования ASCII необходимо .


Mashenkadmitri 19 мар. 2020 г., 19:55:17 | 5 - 9 классы

Сколько бит необходимо для кодирования 124 номеров?

Сколько бит необходимо для кодирования 124 номеров.


Romamyshanskiy 5 февр. 2020 г., 18:41:29 | 10 - 11 классы

Для хранения на диске слова ИНФОРМАЦИЯ в системе кодирования ASCII необходимо?

Для хранения на диске слова ИНФОРМАЦИЯ в системе кодирования ASCII необходимо.


Сколько бит видеопамяти на пиксель необходимо для хранения цветов флага России?

Сколько бит видеопамяти на пиксель необходимо для хранения цветов флага России?


Для хранения текста в кодировке ASCII требуется х битов?

Для хранения текста в кодировке ASCII требуется х битов.

Сколько страниц займет этот текст, если на странице размещается 30 строк по 70 символов в строке.


Katya28022000 17 июн. 2020 г., 09:39:58 | 5 - 9 классы

Сколько бит необходимо для кодирование 16 - ти цветного изображения?

Сколько бит необходимо для кодирование 16 - ти цветного изображения.


Составить ребус со словами ИНФОРМАЦИЯ, КОДИРОВАНИЕ, ХРАНЕНИЕ, ПЕРЕДАЧА, ОБРАБОТКА?

Составить ребус со словами ИНФОРМАЦИЯ, КОДИРОВАНИЕ, ХРАНЕНИЕ, ПЕРЕДАЧА, ОБРАБОТКА.


Dimasmirnov123123 10 нояб. 2020 г., 04:52:25 | 10 - 11 классы

Для хранения 1 символа необходима ячейка, объемом ?

Для хранения 1 символа необходима ячейка, объемом .



Схема метро (метрополитен), топографическая карта (участок местности) ; план эвакуации (здание). P. S. В скобках указаны объекты, информационными моделями которых являются данные схемы.


Средняя линия равна сумме оснований, деленной на 2 Т. Е. .


4. 5. В столбец A ввести 2 начальных значения (в моем примере - 15 и 13 ; в задании - 103 и 101), остальные значения получить протяжной на нужное количество ячеек. В ячейку B1 ввести формулу = 1 / A1, в ячейку B2 - формулу = 1 / (A2 + B1). Остальн..


11114444Бит = 0. 00129389Гигабайт.


> dir D : / d / D Вывод списка в нескольких столбцах с сортировкой по столбцам. Колво столбцов определяется автоматически от кол - ва папок и файлов. Нужно где - то 25 штук для 3 столбцов, и чтоб хватило ширины окна.


1101(2) = 1 * 2 ^ 3 + 1 * 2 ^ 2 + 1 * 2 ^ 0 = 8 + 4 + 1 = 13(10) 462(8) = 4 * 8 ^ 2 + 6 * 8 ^ 1 + 2 * 8 ^ 0 = 4 * 64 + 6 * 8 + 2 = 256 + 48 + 2 = 306(10) F05(16) = 15 * 16 ^ 2 + 5 * 16 ^ 0 = 15 * 256 + 5 = 3845(10).


Право повар лор вор пар.


Право вор ров лор пар лавр.


2. Здесь надо дерево составлять (если нужно решение) а ответ : СТАРТ - Б - А - В - Г - ФИНИШ.


Вся информация в компьютере хранится в двоичном коде. Поэтому надо научиться преобразовывать символы в двоичный код.

Формула Хартли определяет количество информации в зависимости от количества возможных вариантов:

N — это количество вариантов,

i — это количество бит, не обходимых для кодирования.

Если же мы преобразуем эту формулу и примем за N — количество символов в используемом алфавите (назовем это мощностью алфавита), то мы поймем, сколько памяти потребуется для кодирования одного символа.


N=2 i , где N — кол-во возможных вариантов

i — кол-во бит, потребуемых для кодирования

Итак, если в нашем алфавите будет присутствовать только 32 символа, то каждый из них займет только 5 бит.


И тогда каждому символу мы дадим уникальный двоичный код. Такую таблицу мы будем назвать кодировочной.



Первая широко используемая кодировочная таблица была создана в США и называлась ASCII, что в переводе означало American standard code for information interchange. Как вы видите, в таблице присутствуют не только латинские буквы, но и цифры, и даже действия. Каждому символу отводится 7 бит, а значит, всего было закодировано 128 символов.


Но так как этого количества было недостаточно, стали создаваться другие таблицы, в которых можно было закодировать и другие символы. Например, таблица Windows-1251, которая, по сути, являлась изменением таблицы ASCII, в которую добавили буквы кириллицы. Таких таблиц было создано множество: MS-DOS, КОИ-8, ISO, Mac и другие:


Проблема использования таких различных таблиц приводила к тому, что текст, написанный на одном компьютере, мог некорректно читаться на другом. Например:


Поэтому была разработана международная таблица кодировки Unicode, включающая в себя как символы английского, русского, немецкого, арабского и других языков. На каждый символ в такой таблице отводится 16 бит, то есть она позволяет кодировать 65536 символов. Однако использование такой таблицы сильно «утяжеляет» текст. Поэтому существуют различные алгоритмы неравномерной кодировки текста, например, алгоритм Хаффмана.


АЛГОРИТМ ХАФФМАНА

Идея алгоритма Хаффмана основана на частоте появления символа в последовательности. Символ, который встречается в последовательности чаще всего, получает новый очень маленький код, а символ, который встречается реже всего, получает, наоборот, очень длинный код.


У вас должно получиться:


Расположите буквы в порядке возрастания их частоты.


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

Символы d и c превращаются в ветку дерева:


Проделываем эти шаги до тех пор, пока не получится дерево, содержащее все символы.

Итак, сортируем таблицу:


Объединяем символ e и символ cd в ветку дерева:








Получился префиксный код. Теперь осталось расставить 1 и 0. Пусть каждая правая ветвь обозначает 1, а левая — 0.


Составляем код буквы, идя по ветке дерева от буквы к основанию дерева.

Тогда код для каждой буквы будет:


Закодируйте ASCII кодом слово MOSCOW.

Составим таблицу и поместим туда слово MOSCOW. Используя таблицу ASCII кодов, закодируем все буквы слова:


Вся информация в компьютере хранится в двоичном коде. Поэтому надо научиться преобразовывать символы в двоичный код.

Формула Хартли определяет количество информации в зависимости от количества возможных вариантов:

N — это количество вариантов,

i — это количество бит, не обходимых для кодирования.

Если же мы преобразуем эту формулу и примем за N — количество символов в используемом алфавите (назовем это мощностью алфавита), то мы поймем, сколько памяти потребуется для кодирования одного символа.


N=2 i , где N — кол-во возможных вариантов

i — кол-во бит, потребуемых для кодирования

Итак, если в нашем алфавите будет присутствовать только 32 символа, то каждый из них займет только 5 бит.


И тогда каждому символу мы дадим уникальный двоичный код. Такую таблицу мы будем назвать кодировочной.



Первая широко используемая кодировочная таблица была создана в США и называлась ASCII, что в переводе означало American standard code for information interchange. Как вы видите, в таблице присутствуют не только латинские буквы, но и цифры, и даже действия. Каждому символу отводится 7 бит, а значит, всего было закодировано 128 символов.


Но так как этого количества было недостаточно, стали создаваться другие таблицы, в которых можно было закодировать и другие символы. Например, таблица Windows-1251, которая, по сути, являлась изменением таблицы ASCII, в которую добавили буквы кириллицы. Таких таблиц было создано множество: MS-DOS, КОИ-8, ISO, Mac и другие:


Проблема использования таких различных таблиц приводила к тому, что текст, написанный на одном компьютере, мог некорректно читаться на другом. Например:


Поэтому была разработана международная таблица кодировки Unicode, включающая в себя как символы английского, русского, немецкого, арабского и других языков. На каждый символ в такой таблице отводится 16 бит, то есть она позволяет кодировать 65536 символов. Однако использование такой таблицы сильно «утяжеляет» текст. Поэтому существуют различные алгоритмы неравномерной кодировки текста, например, алгоритм Хаффмана.


АЛГОРИТМ ХАФФМАНА

Идея алгоритма Хаффмана основана на частоте появления символа в последовательности. Символ, который встречается в последовательности чаще всего, получает новый очень маленький код, а символ, который встречается реже всего, получает, наоборот, очень длинный код.


У вас должно получиться:


Расположите буквы в порядке возрастания их частоты.


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

Символы d и c превращаются в ветку дерева:


Проделываем эти шаги до тех пор, пока не получится дерево, содержащее все символы.

Итак, сортируем таблицу:


Объединяем символ e и символ cd в ветку дерева:








Получился префиксный код. Теперь осталось расставить 1 и 0. Пусть каждая правая ветвь обозначает 1, а левая — 0.


Составляем код буквы, идя по ветке дерева от буквы к основанию дерева.

Тогда код для каждой буквы будет:


Закодируйте ASCII кодом слово MOSCOW.

Составим таблицу и поместим туда слово MOSCOW. Используя таблицу ASCII кодов, закодируем все буквы слова:

Читайте также: