§3. Кодирование символьной информации

Надеемся, вы помните, что информатика - наука о получении, преобразовании, сохранении и передаче информации. Без точной и своевременной информации буквально как без воды. Недаром марафонский бегун пожертвовал жизнью всего лишь ради нескольких слов. Говоря научным, прозаическим языком, он обеспечивал информационную инфраструктуру государства. Давайте же уделим свое внимание тому, ради чего не жалели жизни, - передаче информации.

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

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

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

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

Но удары барабана, столбы дыма, поднятые вверх руки - это вовсе не то же самое, что и членораздельная речь или с детства понятные буквы. Для того, чтобы сообщение было не только принято, но и понято, приходилось предварительно договариваться, что означают, например, два дыма, или последовательность из трех быстрых ударов, или разведенные в стороны руки.

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

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

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

Майкл Фарадей в 1831 году сделал открытие, буквально перевернувшее мир: он изобрел способ получения электрического тока. И чуть ли не сразу же электрический ток был использован для передачи сообщений. На основе теоретических разработок английского ученого Шиллинга, американский изобретатель Сэмюэл Морзе создал и широко внедрил в практику телеграфные аппараты и линии связи.

Морзе пришлось создавать язык, отчасти похожий на язык африканского барабанного телеграфа. И электрический ток, и барабан имеют весьма небогатый собственный язык. По барабану можно либо стучать, либо нет. Электрический ток или идет, или его нет. Поэтому и кодировка, предложенная Морзе использовала всего три своеобразные буквы: длинный сигнал (тире), короткий сигнал (точка), нет сигнала (пауза) - для разделения букв. Так, знаменитый сигнал SOS - (Save Our Souls - спасите наши души) кодируется так:

<точка>, <точка>, <точка> - S
<пауза>
<тире>, <тире>, <тире> - O
<пауза>
<точка>, <точка>, <точка> - S

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

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

Естественным желанием изобретателей стало совместить пишущую машинку с телеграфным аппаратом и автоматизировать процесс кодирования-декодирования информации. К сожалению, все ранние попытки сделать машину, понимающую код Морзе, оказались безуспешными. Предложенные варианты оказывались излишне громоздкими, ненадежными и дорогими.

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

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

Давайте теперь встанем на место Бодо и подумаем, какой же длины должна быть последовательность, которую можно составлять только из двух сигналов, чтобы закодировать все буквы.

Для определенности будем обозначать сигнал одного типа нуликом (0), а другого типа - единичкой (1).

Итак, последовательностью из одного сигнала можно закодировать всего две буквы. Например:

0

А

1

Ы

Если бы наш язык состоял всего лишь из этих двух звуков, нам бы этого и хватило.

К сожалению, в русском языке букв несколько больше. Поэтому продолжим исследование.

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

0

0

А

0

1

Ы

1

0

В

1

1

Р

В общем, получше, но изъясняться на таком языке тоже не слишком удобно.

Трехсигнальной последовательностью можно закодировать уже восемь букв:

0

0

0

А

0

0

1

Ы

0

1

0

В

0

1

1

Р

1

0

0

Б

1

0

1

У

1

1

0

З

1

1

1

Ш

Это уже совсем хорошо. Можно послать сверхсрочное сообщение “ВЫРВУАРБУЗ”. Но всегда хочется лучшего.

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

Если вы порасспрашиваете своих родителей, бабушек и дедушек, то они расскажут вам истории про телеграммы, когда буквы были только большими, а вместо точек и запятых стояли жутковатые слова ТЧК и ЗПТ. Поэтому, хотя вроде бы пятисигнальной последовательностью вполне можно изъясняться на не вполне литературном русском языке, мы продолжим ее наращивание.

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

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

Можно сказать, с телеграфом мы разобрались.

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

Впервые, по всей видимости, это было сделано под руководством Алана Тьюринга в местечке Блетчли-Парк неподалеку от Лондона. Именно там в 1943 году был создан специализированный компьютер, расшифровывающий немецкие военные коды. Машина называлась “Колосс”.

Тысячи перехваченных за день неприятельских сообщений вводились в память “Колосса”, после чего в поисках соответствия машина перебирала сотни тысяч вариантов, расшифровывая самые сложные коды.

Как говорил один и участников этой работы И. Дж. Гуд “Я не хочу сказать, что мы выиграли войну благодаря Тьюрингу, но беру на себя смелость сказать, что без него мы могли бы ее проиграть”.

Война войной, но уже в 1950 году в Англии компьютер LEO (Lyon’s Electronic Office) начислял зарплату работникам чайных магазинов.

Слегка углубимся в технические вопросы, чтобы понять дальнейшее. Одна “электронная коробочка”, в которой хранится нулик или единичка, называется битом (от Binary digiT - двоичная цифра). Это может быть заряженный или разряженный конденсатор, намагниченное или размагниченное колечко, бугорок или впадина на поверхности компакт-диска - не суть важно. Самое важное, что именно битами меряют информацию внутри компьютера. Код КОИ-7, таким образом требует семь “коробочек”-битов для одного символа. Значит, это семибитное кодирование символьной информации.

В большинстве первых компьютеров использовался именно семибитный код. Но с развитием техники это стало довольно неудобно. Причины тут довольно простые, но давайте подождем с их объяснением до девятого класса. Пока же поверьте на слово, что семибитное кодирование - это как если бы в нашей жизни с десятичной системой счисления тонну приравняли 850 килограммам.

Новый код был уже восьмибитным и основывался на американском стандартном коде обмена информацией (ASCII - American Standard Code for Information Interchange). В частности, именно благодаря восьмибитному кодированию мы без всяких проблем используем в тексте большие и маленькие буквы и русского, и латинского алфавитов, знаки препинания, цифры, специальные символы вроде № и, конечно же ПРОБЕЛ. Это очень важный символ, ведьбезнегочитатьтекстпростопротивно.

Осталось сказать, что восемь бит объединяются в более крупную единицу информации - байт. Поэтому и говорят, что один символ занимает в компьютере ровно один байт.

Один байт – довольно мелкая единица измерения информации. Например, если подсчитать, сколько места в памяти компьютера занимает, скажем, десяток страниц текста, то мы получим весьма внушительное число байт. Поэтому были введены более крупные единицы килобайт (обозначение К), мегабайт (М), гигабайт (Г), терабайт (Т) Соотношения между ними таковы:

1 Кбайт = 1024 байтам
1 Мбайт = 1024 Кбайтам
1 Гбайт = 1024 Мбайтам
1 Тбайт = 1024 Гбайтам

Конечно, в современном мире, опутанном компьютерными сетями, даже восьмибитного кодирования недостаточно: есть же арабский алфавит, два японских, хинди... Да и внешне похожие алфавиты тоже немного, да различаются. Поэтому не так давно был предложен новый стандарт символьного кодирования UNICODE, где каждый символ кодируется уже двумя байтами. Он позволяет свободно обмениваться сообщениями по Интернету на любом языке, не выясняя предварительно, понимает ли другой компьютер ваш родной алфавит. A to seychas chastenko prihoditsa posilat teksti za granitsu vot v takom vide.

Вопросы и задания.

  1. Посчитайте, сколько информации в байтах содержится на одной странице вашего учебника.
  2. Сколько битов требуется для кодирования слов языка племени Мумбо-Юмбо, в алфавите которого целых 16 букв (причем все – прописные), а цифр и знаков препинания и вовсе нет?
  3. Если в предыдущем задании ваш ответ - 4, то найдите ошибку. Без какого символа нельзя обойтись?
  4. Почему в кодировке UNICODE не возникает вопроса об алфавите, используемом при передаче сообщения? Сколько символов можно закодировать, используя UNICODE?
TopList