Кодирование символов

Общая информация о кодировании символов естественных языков. Метод кодирования Морзе. Способ кодирования Бодо. Система кодирования Холлерита. Системы кодирования ASCII, ISO 646 и EBCDIC. Коды телеграфа. Коды для представления символов китайского языка.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 04.01.2009
Размер файла 55,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

34

Краткая история систем кодирования символов естественных языков в США, Европе и Восточно-азиатских странах

Общая информация о кодировании символов естественных языков

Кодирование символов: основа для обеспечения возможности работы компьютеров с текстовыми данными

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

При этом многие люди, вероятно, и не догадываются о том, что текстовые данные в ПК представлены, в конечном итоге, в виде числовых данных. В современных компьютерных системах символы*, которые люди используют для записи и передачи текстов на своём языке, кодируются с помощью чисел, записанных в двоичной системе счисления (см. Табл. 1). Это делается потому, что микропроцессоры, лежащие в основе современных компьютерных систем, могут делать, по сути, лишь две вещи: производить действия двоичной арифметики и выполнять Булевы логические операции**.

Таблица 1.
Двоичные значения, стоящие за алфавитно-цифровыми символами на экране в 7-битной кодировке ASCII.

Символ на экране

Двоичное значение для его обработки

Символ на экране

Двоичное значение для его обработки

 

1

0110001

A

1000001

2

0110010

B

1000010

3

0110011

C

1000011

4

0110100

D

1000100

5

0110101

E

1000101

Поэтому когда ПК, к примеру, записывает букву "A" на дискету, он не создаёт изображения буквы "A" на магнитном носителе, а записывает на него двоичное число (состоящее из нолей и единиц), соответствующее букве "A" в специальной таблице символов. Вы спросите: но ведь ПК создаёт изображение буквы "A" на дисплее, когда я нажимаю клавишу "A"!? Конечно. Когда Вы нажимаете клавишу с буквой "A", первая вещь, которая при этом происходит - в клавиатуре генерируется число, соответствующее букве "A". ПК использует это число для выборки изображения буквы "A" из файла шрифта, в котором изображение каждой буквы пронумеровано в порядке, определяемом той или иной таблицей символов. Лишь после этого соответствующее изображение появляется на экране. То же самое происходит при печати текста, с той лишь разницей, что изображение буквы "A" оказывается на бумаге, а не на дисплее*.

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

ПК для работы с английским языком, используемые в США , используют 7-битную таблицу символов и метод кодирования ASCII (American Standard Code for Information Interchange)*, которые обеспечивают возможность кодирования 128 символов (поскольку бит может иметь только два значения - "1" или "0" - используя 7 бит, можно представить максимум 27=128 разных чисел. Набор символов**, использованный для заполнения этой таблицы, включает в себя заглавные и строчные буквы латинского*** алфавита, арабские цифры, знаки препинания и некоторые управляющие двоичные последовательности. Если используется 8-й бит, который изначально был зарезервирован для контроля чётности (вид проверки корректности передачи данных), метод кодирования ASCII становится 8-битным, или 1-байтным****. Если же этот 8-й бит используется, как и 7 других, для нумерации символов, а не для контроля чётности, то максимально возможный объём таблицы символов, используемой вместе с методом кодирования ASCII , возрастает до 28=256 позиций.

В случае работы с языками типа японского, в которых используется огромное количество символов - десятки тысяч, - для нумерации символов, используемых в этом языке, необходимо использовать числа длиною как минимум в 16 бит (2 байта). 16-битный метод кодирования обеспечивает 216=65.536 возможных позиций в таблице символов.

Однако в стандартную таблицу символов, используемую в настоящее время в японских ПК и определённую, в частности, в японском промышленном стандарте JIS [Japan Industrial Standard] X 0208-1990, внесено только 6879 символов. Этого достаточно для решения многих задач по обработке текстов, встречающихся в повседневной жизни, но мало для написания имён людей, географических названий мест, цитирования исторических данных и даже для написания названий рыб, что японцы едят в ресторанах "суши"!

Кроме этой, необходимо отметить ещё одну проблему. Современные компьютеры могут наиболее эффективно работать с порциями данных, размер которых кратен 8 битам (1 байту). Это потому, что в их электронных схемах данные обычно передаются и обрабатываются порциями по 8, 16, 32 или 64 бита. По этой причине 10-битный или 15-битный метод кодирования окажется неудобным и неэффективным для применения в ПК. С другой стороны, если для нумерации символов использовать слишком длинные числа (двоичные последовательности), объём данных, с которыми придётся работать компьютеру, резко возрастёт, что вновь приведёт к существенному снижению эффективности работы. Например, если для нумерации символов использовать 24 бита, это позволило бы работать с символами всех естественных языков мира, как известных из истории, так и используемых сейчас (224=16.777.216). Однако для нумерации символов большинства языков, имеющих алфавиты, всё же достаточно чисел длиною в 8 бит, поскольку в этих алфавитах насчитывается не более 256 символов. И поэтому использование для их представления 24-битного метода кодирования привело бы к обработке 16-ти ненужных в данном случае бит, и при записи той же латинской буквы "А" на дискету привело бы к нерациональному расходованию места на носителе, которое могло бы быть использовано для хранения данных.

Ранняя история кодирования символов естественных языков

Телеграфия и начало электронной обработки данных

Каждый, кто когда-нибудь смотрел кино об американском Западе XIX-го века, знает, что первым методом кодирования, широко применяемым для преобразования символов и текстов в электронный вид, был метод, предложенный Морзе*. То, что этот метод кодирования был изобретён для передачи сообщений по телеграфным линиям, а не для обработки текстов в компьютерах, общеизвестно. Однако гораздо меньшее количество людей знает, что его изобретатель, американец Сэмюэл Финли Бриз Морзе [Samuel Finley Breese Morse] (1791-1872), был также известным художником. В своё время он изучал рисование в Лондоне и там узнал об исследованиях электромагнетизма, проводимых британскими учёными. Возвращаясь по морю в США в 1832-м году, он задумал создать свою собственную систему телеграфа. Именно с этой системы началось движение в сторону того мира электронных сетей, в котором мы сейчас живём, и именно за её разработку Морзе снискал славу "американского Леонардо да Винчи".

Морзе не был первым изобретателем системы телеграфа для практического применения. Эта честь принадлежит двум британцам*: сэру Чарльзу Уитстоуну [Charles Wheatstone], физику и изобретателю, и сэру Уильяму Фосерджиллу Куку [William Fothergill Cooke], электроинженеру, которые внедрили первую систему железнодорожного телеграфа в Англии в 1837-м году, в то время как Морзе в это время только изобрёл первый американский телеграф. Однако, система британцев была весьма непростой. В ней использовалось 5 проводов, которые отклоняли магнитную иглу-стрелку в приёмнике так, что она указывала на те или иные буквы алфавита**. В отличие от неё, система Морзе была проще. В ней использовался один провод для передачи сигнала, и вместо отклоняемой магнитной стрелки в ней использовался электромагнит, который притягивал небольшую конструкцию, когда поступал сигнал. Это сделало устройство Морзе более надёжным. Другой особенностью изобретения Морзе была возможность записи поступающих сигналов на движущуюся бумажную ленту (так как конструкцию, которая притягивалась электромагнитом, можно было "заставить" перфорировать или окрашивать при этом ленту); тем не менее, на протяжении многих лет эта возможность не использовалась, и люди-операторы были вынуждены читать приходящие сообщения по щелчкам приёмника. Морзе продемонстрировал свою систему кодирования 24 мая 1844-го года в первом в истории США сеансе телеграфной связи, который проводился между городами Балтимор (штат Мэриленд) и Вашингтон (Округ Колумбия). Он послал сообщение "What hath God wrought!" ("Чудесно творение господне!").

Морзе изобрёл метод кодирования, который он использовал для посылки своего исторического сообщения, в 1838-м году. Метод кодирования Морзе напоминает двоичный код, используемый в современных компьютерах, тем, что он тоже базировался на двух возможных значениях - в случае метода кодирования Морзе, это были точка или тире. Однако в отличие от современных методов кодирования, используемых для нумерации символов в современных компьютерах, комбинации точек и тире, используемые для представления символов в методе кодирования Морзе, были разной длины* (см. Табл. 2). Морзе использовал принцип, по которому наиболее часто употребляемым буквам ставились в соответствие наиболее короткие последовательности из точек и тире, что существенно сокращало длину сообщения. Например, наиболее часто используемой в английском языке букве "E" в методе кодирования Морзе соответствует одна точка; второй по частоте использования букве английского языка - "T" - одно тире. Интересно, что Морзе подсчитывал частоту использования букв не путём изучения текстов, а путём подсчёта литер каждого типа в типографском наборе. Результатом его поистине каторжного труда стал высокоэффективный метод кодирования, который с некоторыми изменениями используется до сих пор, хотя с момента его изобретения прошло уже более 160 лет.

Таблица 2.
Подмножество Международной системы кодирования Морзе.

A

.-

N

-.

0

-----

B

-...

O

---

1

.----

C

-.-.

P

.--.

2

..---

D

-..

Q

--.-

3

...--

E

.

R

.-.

4

....-

F

..-.

S

...

5

.....

G

--.

T

-

6

-....

H

....

U

..-

7

--...

I

..

V

...-

8

---..

J

.---

W

.--

9

----.

K

-.-

X

-..-

,

--..--

L

.-..

Y

-.--

.

-.-.-.

M

--

Z

--..

?

..--..

Система кодирования Морзе с течением времени эволюционировала и существовала в нескольких версиях. Всё началось с "Ранней системы кодирования Морзе" [Early Morse Code] , которая впоследствии развилась в "Американскую систему кодирования Морзе" [American Morse Code], а затем - в "Международную систему кодирования Морзе" [International Morse Code]. В Табл. 2 читатель может видеть подмножество символов, являющееся извлечением из таблицы символов Международной системы кодирования Морзе. Заметим, что в указанном подмножестве нет строчных букв, а все арабские цифры представлены с помощью совокупностей, состоящих из 5-ти точек или тире*. При реальной передаче данных сигнал для тире в 3 раза превосходит по длительности сигнал для точки. Сигналы точек и тире в совокупностях, которыми обозначаются буквы, разделяются интервалами, длительность которых равна длительности сигнала точки. "Пробел" между буквами, формирующими то или иное слово, обозначается интервалом, который по длительности равен утроенной длительности сигнала точки (иными словами, длительность этого интервала равна длительности сигнала для тире). Пробел между словами обозначается интервалом, по длительности равным ушестерённой длительности сигнала точки (иными словами, длительность этого интервала равна удвоенной длительности сигнала для тире).

После того, как изобретения Морзе вошли в практическое употребление, другие изобретатели внесли свой вклад в развитие телеграфа, разработав, например, такие устройства, как реле, которые позволяли одновременно с приёмом сигнала в одном месте посылать его далее. Кроме того, были разработаны различные методы, позволяющие более полно использовать пропускную способность телеграфных линий. Так появилось диплексирование [diplexing] (посылка по линии одновременно двух сообщений в одном направлении), дуплексирование [duplexing] (посылка по линии одновременно двух сообщений в разных направлениях), квадроплексирование [quadruplexing] (посылка по линии одновременно четырёх сообщений, по два в каждом направлении). Впоследствии приём поступающих сигналов был механизирован с помощью ленточитающих машин (см. выше), производительность которых в 1900-м году составляла порядка 400 слов в минуту.

Следующим существенным прорывом вперёд в технологии телеграфа был примитивный печатающий телеграфный аппарат, или "телетайп"; его запатентовал во Франции в 1874-м году Жан Морис Эмиль Бодо [Jean-Maurice-Йmile Baudot] (1845-1903). Как и телеграф Морзе, это изобретение привело к созданию новой системы кодирования символов - 5-битного метода кодирования Бодо (и используемой с ним таблицы символов). Метод кодирования Бодо стал первым в мире методом кодирования текстовых данных с помощью двоичных последовательностей. Сообщения, для передачи которых использовалась система кодирования Бодо, распечатывались операторами на узкие ленты для двухканальной связи с помощью специальных 5-клавишных клавиатур. В более поздних версиях устройства использовались клавиатуры с буквами (как у пишущих машинок - прим. перев.), которые уже автоматически генерировали соответствующую той или иной букве 5-битную последовательность. Другой особенностью телетайпа Бодо было мультиплексирование, обеспечивающее возможность одновременной работы до 6-ти операторов благодаря применению системы временнуго распределения. Это позволило значительно увеличить пропускную способность телеграфной линии. Предложенная Бодо аппаратура зарекомендовала себя весьма положительно и оставалась в широком применении в XX-м веке, пока её не вытеснили телефоны и персональные компьютеры.

Таблица 3.
Кодовая таблица Бодо.

Двоичное
значение

Буквы

Знаки

 

00011

A

1

11001

B

?

01110

C

:

01001

D

$

00001

E

3

01101

F

!

11010

G

&

10100

H

STOP

00110

I

8

01011

J

'

01111

K

(

10010

L

)

11100

M

.

01100

N

,

11000

O

9

10110

P

0

10111

Q

1

01010

R

4

00101

S

BELL

10000

T

5

00111

U

7

11110

V

;

10011

W

2

11101

X

/

10101

Y

6

10001

Z

"

00000

n/a

n/a

01000

CR

CR

00010

LF

LF

00100

SP

SP

11111

LTRS

LTRS

11011

FIGS

FIGS

Способ кодирования, который использовал Бодо в своей системе, подразумевал использование 5 бит, однако 32-х позиций (25=32) недостаточно для представления символов латинского алфавита вместе с арабскими цифрами и знаками препинания. Поэтому в коде Бодо используется специальная схема "сдвига" для переключения между двумя "внутренними" таблицами символов, по 32 символа в каждой (см. Табл. 3), которую можно сравнить с системой "сдвига", используемой в пишущих машинках для переключения на верхний регистр. Технически это реализовывалось с помощью использования управляющих (в данном случае работой телетайпов) двоичных последовательностей. Местб для подобных управляющих двоичных последовательностей есть и в таблицах символов, которые используются в современных системах кодирования, применяемых в сегодняшних ПК. Как видно из Табл. 3, в таблице символов кода Бодо имеются те же символы, что показаны в приведённом выше извлечении из таблицы символов Международной системы кодирования Морзе: заглавные буквы латинского алфавита, арабские цифры и знаки препинания. В общей сложности печатаемых символов в первоначальной версии таблицы символов кода Бодо (изображённой в Табл. 3) было 50. Составляющие, т.е. "единицы" и "нули", двоичного кода в аппарате Бодо обозначались пометками и пробелами на ленте; во время передачи сообщения они использовались для управления включением и выключением электрического тока. Каждый символ в сообщении предварялся стартовым битом, а после символа передавался стоповый бит, что сделало метод кодирования Бодо медленным по нынешним меркам.

Причиной, по которой Бодо был вынужден ограничить свой метод кодирования использованием двоичных последовательностей длиною в 5 бит и не оставил, таким образом, места в таблице символов для строчных латинских букв - были аппаратные ограничения. Более сложный метод кодирования - даже использовавший бы для представления символов всего на 1 бит больше (т.е. 6-битный) - потребовал бы применения значительно более сложных электромеханических передающих устройств, изготовление (по крайней мере массовое изготовление - прим. перев.) которых во времена Бодо было чрезвычайно трудной технологической задачей. После расширения системы кодирования Бодо так, что с её помощью стало возможным передавать 55 разных символов - и при этом появились 3 позиции для "символов национальных языков" - CCITT в Женеве, в Швейцарии, в 1932-м году объявил её стандартной 5-битной системой кодирования символов для телетайпов. Она получила обозначение "Международный телеграфный алфавит No.2". (что терминологически неправильно - прим. перев.). В честь Бодо, между прочим, была также названа специальная единица измерения Бод (Baud), которой измеряется число изменений (модуляций) сигнала в секунду*.

1890-й год: американское Бюро статистики и появление в нём новой системы для кодирования символов

Конец XIX-го века ознаменовался изобретением ещё одной системы для кодирования символов естественных языков. Он была создана в США для обработки данных, собираемых во время переписей населения, молодым американским* изобретателем, которого звали Герман Холлерит (1860-1929). После окончания Нью-Йоркской Колумбийской школы горного дела в 1879-м году, в 1880-м Холлерит устроился на работу в Бюро статистики при Министерстве внутренних дел США. Последствия этого, казалось бы, незначительного события сказывались впоследствии вплоть до 1970-х годов, "золотой эры" больших вычислительных машин. Герман Холлерит был ни кем иным, как изобретателем кода Холлерита, использовавшегося для записи алфавитно-цифровой информации (т.е. символов английского алфавита, используемых в нём знаков препинания, а также арабских цифр - прим. перев.) на бумажных перфорированных картах. С появлением перфокарт в американских массах возникло шуточное выражение 'do not fold, spindle, or mutilate' ("не гнуть, не тянуть, не мять"), которое оставляло у многих американцев впечатление, что компьютеры скоро будут полностью контролировать их общество.

Интересно, что хотя Холлерит применил перфокарты в работе Бюро статистики в 1880-х, изобретены они были гораздо раньше. Первые перфокарты были изготовлены около 1800-го года французским изобретателем Жозефом Мари Жаккаром (1752-1834), который использовал их в новых фабричных ткацких станках. Это изобретение, запатентованное Жаккаром в 1804-м году, позднее позволило полностью автоматизировать работу ткацких станков, в результате чего текстильная промышленность стала такой, какой мы её знаем сегодня. Более того, Холлерит не был первым, кто предложил использовать изобретение Жаккара для использования в вычислительной технике. Эти лавры принадлежат англичанину Чарльзу Бэббиджу (1792-1871), который планировал использовать перфокарты в своей "аналитической машине", огромном механическом компьютере, который так никогда и не был полностью построен (при жизни Бэббиджа; позднее эту работу завершил его сын - прим. перев.). Наконец, Холлерит и не предложил бы использовать перфокарты для ввода данных, если бы не завершились неудачно его эксперименты с другим носителем - перфорированной бумажной лентой, которая имела склонность разрываться во время работы.

Чтобы решить проблему с разрывами бумажной ленты, Холлерит изготовил то, что впоследствии стало компьютерной перфокартой (по этому адресу доступно фото оригинальной перфокарты Холлерита, хранимой в коллекции библиотеки Конгресса США). В том виде, в каком она была позднее стандартизирована, перфокарта была жёсткой карточкой (из плотной бумаги) размером 186x82 мм со срезанным верхним левым уголком. На ней были 12 горизонтальных рядов (пронумерованных сверху вниз как 12, 11, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9) и 80 вертикальных (пронумерованных слева направо с 1-го по 80-й включительно). Каждый вертикальный ряд соответствовал одному алфавитно-цифровому символу. Когда перфокарты протягивались через специальное считывающее устройство, называемое табулятором, гибкие игольчатые контакты попадали в соответствующие дырки, замыкая одну из электрических цепей; таким образом регистрировалось то или иное значение. Несмотря на то, что эта система выглядела очень функционально ограниченной и примитивной, на самом деле она была очень мощной и эффективной. Перепись населения США в 1880-м году, которая выполнялась ручным трудом, продолжалась 7 лет, и полученные данные за это время стали, естественно, устаревшими и бесполезными. Когда при переписи населения в 1890-м году были впервые использованы табуляторы Холлерита, Бюро статистики с их помощью провело все необходимые вычисления за 6 недель и с более точными данными, чем ранее, что позволило сэкономить 5.000.000 долларов США. С тех пор стоимость работ, проводимых Бюро статистики, существенно упала.

В системе кодирования Холлерита, на первый взгляд, двоичная последовательность, соответствующая одному алфавитно-цифровому символу, регистрировалась в 12-ти горизонтальных рядах перфокарты, и поскольку каждый из рядов мог быть перфорирован или не перфорирован (содержать 1 или 0), это давало бы 12-битный метод кодирования. Максимально возможное количество элементов, которое могло бы быть представлено с помощью такого метода кодирования - 212, то есть 4096. На самом же деле таблица символов, используемая в системе Холлерита, содержала только 69 символов - это были заглавные латинские буквы, арабские цифры, знаки препинания и некоторые другие символы. Таким образом, реальные возможности системы кодирования Холлерита по представлению текстовых данных были сравнимы даже с таковыми возможностями системы кодирования Бодо. Зачем же тогда, спросит читатель, на перфокарте было предусмотрено так много горизонтальных рядов? Одной из причин этому является тот факт, что большее количество рядов позволяет кодировать данные, производя меньшее количество перфораций, а это было критично, так как работа с перфораторами карт в течение многих лет производилась вручную. Поскольку рядов было много, для кодирования каждой из 10 арабских цифр (а также 2-х букв латинского алфавита) было достаточно сделать всего одну перфорацию на один вертикальный ряд. Оставшиеся 24 буквы латинского алфавита кодировались с помощью двух перфораций. Для кодирования знаков препинания и прочих символов требовалось сделать 2 или больше перфораций, поэтому нередко они (для экономии времени - прим. перев.) вообще не использовались.

Поскольку использование табулятора в Бюро статистики оказалось столь успешным, Холлерит решил начать с его помощью своё дело. В 1896-м году он основал компанию для продажи своего изобретения, которая, как несложно догадаться, была названа по названию выпускаемого устройства - "Tabulating Machine Co.". В 1911-м году она слилась с двумя другими компаниями - "Computing Scale Co. of America" и "International Time Recording Co.", после чего получила название "Computing-Tabulating-Recording Co.", или, сокращённо, C-T-R. После захвата рынков на нескольких континентах и организации деловых операций в общемировом масштабе, в 1924-м году C-T-R сменила своё название на "International Business Machines Corporation" - IBM. И поскольку система кодирования Холлерита и перфокарты были основными технологиями этой корпорации - доминирующего производителя на рынке компьютерной техники в 1960-х - 1970-х гг. - они удостоились широкого использования для представления данных в компьютерных системах и применялись вплоть до 1960-х, пока IBM не разработала иной код для своих больших вычислительных машин.

Использовавшиеся в компьютерах системы кодирования символов американского английского языка и символов европейских языков

Системы кодирования ASCII, ISO 646 и EBCDIC

Быстрое развитие коммуникационных средств и технологий для обработки данных в первой половине XX-го века в США сделало очевидной необходимость в создании стандартной системы кодирования для обмена текстовой информацией. Эта система должна была обеспечивать представление всего того набора символов, что имеется в англоязычной пишущей машинке. Американская стандартизирующая ассоциация - 'American Standards Association', ASA, которая позднее сменила название на 'American National Standards Institute', ANSI - занялась изучением этой проблемы в конце 1950-х гг. и в конце концов пришла к заключению, что система кодирования, в которой используется 7-битный метод кодирования - когда для представления каждого из символов используется двоичная последовательность длиною в 7 бит, - устраняет необходимость в "сдвиге", используемом в системе кодирования Бодо. Поэтому использования 7-битного метода кодирования будет достаточно для достижения поставленной цели. В 1963-м году ASA предложила систему кодирования ASCII (American Standard Code for Information Interchange), которая изначально называлась, очевидно, ANSCII (American National Standard Code for Information Interchange). В любом случае, в таблице символов, используемой в системе кодирования ASCII, в том виде, в каком она была заявлена в 1963-м, оставалось много зарезервированных позиций, в том числе для строчных латинских букв, которые на тот момент были пустыми. Только в 1968-м году они были заполнены, и тогда система кодирования ASCII, в таблице символов которой было 128 позиций - для 32-х управляющих двоичных последовательностей и 96-ти печатаемых символов, - приняла свой окончательный вид, в котором она используется в настоящее время (см. Табл. 4. Заметим, что позиции для пробела [space] и для удаления [delete] оставлены пустыми; см. также Рис. 5 ниже). Более того, несмотря на то, что система кодирования ASCII специально разрабатывалась так, чтобы избежать необходимости в "сдвиге", в её таблицу символов были включены управляющие двоичные последовательности для его обеспечения - в частности, SI (SHIFT IN ) и SO (SHIFT OUT ) для "фиксированного сдвига", а также ES (ESCAPE ) для "нефиксированного сдвига"*. Эти управляющие двоичные последовательности были позднее использованы для расширения системы кодирования ASCII таким же образом, как это реализовано в системе кодирования Бодо - две "внутренние" таблицы символов объёмом в 128 позиций каждая составляли одну таблицу символов объёмом в 256 позиций, в которой для кодирования доступных для печати символов было отведено 190 позиций**.

Таблица 4.
Фрагмент кодовой таблицы ASCII
(94 позиции).

0

@

P

`

p

!

1

A

Q

a

q

"

2

B

R

b

r

#

3

C

S

c

s

$

4

D

T

d

t

%

5

E

U

e

u

&

6

F

V

f

v

'

7

G

W

g

w

(

8

H

X

h

x

)

9

I

Y

i

y

*

:

J

Z

j

z

+

;

K

[

k

{

,

<

L

\

l

|

-

=

M

]

m

}

.

>

N

^

n

~

/

?

O

_

o

Система кодирования ASCII была принята всеми изготовителями компьютеров в США за исключением корпорации IBM, которая разработала собственную "фирменную" систему кодирования символов для использования в своих больших ЭВМ (см. ниже). А поскольку американские производители компьютеров были в то время крупнейшими поставщиками компьютеров в мире, система кодирования ASCII немедленно стала международным стандартом de facto. Это вызвало необходимость адаптировать систему кодирования ASCII для других (кроме английского) языков, использующих латинский алфавит, в частности, для языков западноевропейских государств. Эта работа была проделана Международной организацией по стандартизации (International Organization for Standardization, ISO), базирующейся в Женеве, Швейцария. В 1967-м году была выпущена рекомендация ISO 646. Она, в основном, ссылалась на использование кода ASCII "как есть", за исключением того, что 10 позиций в таблице символов должны быть оставлены открытыми для "национальных вариантов", как в коде Бодо (в нём, как мы помним, таких позиций было 3). Десять символов, которые должны были занимать эти позиции в кодовой таблице, были указаны в версии этой рекомендации, известной как International Reference Version (IRV). Таблица символов, используемая в системе кодирования ASCII, была также использована в качестве базовой при создании 7-битных таблиц символов для языков, не использующих латинский алфавит, например, арабского и греческого*. В 1969-м году она была сделана основой таблицы символов для японского языка, определённой стандартом JIS.

На данный момент существует в общей сложности порядка 180 таблиц символов для различных языков, используемых в 8-битных системах кодирования, называемых "расширениями системы кодирования ASCII", зарегистрированных ISO.

Конечно, подавляющее большинство людей, соприкасающихся с системой кодирования ASCII, на самом деле работают с ней не в оригинальном виде, а с одной из более поздних её модификаций. Обычно это одно из 8-битных "расширений системы кодирования ASCII", разработанных производителем компьютера* обычно для использования в каком-либо регионе, а не какой-то одной стране. Англоязычные версии двух ведущих ОС для ПК - Microsoft Windows и Apple Macintosh (MacOS) - поддерживают работу со специальными символами и символами букв с ударениями и диакритическими (надбуквенными - прим. перев.) знаками, для работы с европейскими языками, базированными на латинском алфавите (например, с французским, немецким, шведским) без необходимости внесения каких-либо модификаций в ОС или ПО для обработки текстов. При этом специальные символы и символы букв с диакритическими знаками для этих языков вводятся после нажатия одной из функциональных клавиш (или их комбинации - прим. перев.), что, к сожалению, снижает скорость печати. Кроме того, следует особо отметить, что (вторые "половинки" - прим. перев.) таблицы символов, используемые в этих "расширениях системы кодирования ASCII", заведомо неполны. Например, в них нередко отсутствуют символы денежных единиц, используемых в странах соответствующего региона. Более того, в них "потеряны" некоторые символы, необходимые при обработке исторических текстов и не принимаются во внимание некоторые часто используемые лигатуры - когда две буквы соединены и используются в качестве одной.

Несмотря на то, что система кодирования ASCII (и различные её "расширения") была принята практически всеми американскими производителями мини-компьютеров, рабочих станций и ПК, и позднее была возведена ISO в ранг международного стандарта, корпорация IBM - бесспорный лидер в области производства Больших ЭВМ в 1960-х - 1970-х гг. - предпочла пойти своим собственным путём. Это обычно объяснялось желанием сохранить совместимость с предыдущими системами, но многие люди интерпретировали данный факт как проявление маркетинговой стратегии IBM, нацеленной на "запирание" покупателей IBM в рамках ПО и аппаратных средств, произведённых IBM. Как бы то ни было, корпорация создала собственную патентованную 8-битную (как мы помним, 28 даст 256 возможных позиций в таблице символов) систему кодирования, названную EBCDIC (Extended Binary Coded Decimal Interchange Code). Она использовалась в коммерчески удачной серии Больших ЭВМ IBM System/360, которые были хитом продаж в апреле 1964 года. EBCDIC, как видно даже из названия (Extended - расширенный), является, по сути, "расширенной" до использования 8 бит более старой системой кодирования, разработанной IBM - BCDIC (Binary Coded Decimal Interchange Code), в которой использовался 6-битный метод кодирования. Следует отметить, что в некоторых источниках BCDIC называется просто BCD (Binary Coded Decimal) и указывается, что она, в свою очередь, происходит от ещё более ранней, системы кодирования, которая применялась для представления арабских цифр и в которой использовался 4-битный метод кодирования (24 = 16 позиций).

Поскольку IBM продавала свои Большие ЭВМ по всему миру, возникло множество разных версий EBCDIC. Известно о 57 различных "национальных" вариантах EBCDIC, в конечном итоге разработанных и использованных корпорацией в своих системах. И несмотря на то, что была создана International Reference Version (IRV) системы кодирования EBCDIC, базированная на рекомендации ISO 646 и поэтому "совместимая" с системой кодирования ASCII*, большинство таблиц символов, используемых в разных вариантах кода EBCDIC, даже не содержат всех тех символов, что имеются в таблице символов кода ASCII. Это препятствует нормальному обмену данными между системами, на одной из которых для представления символов используется система кодирования EBCDIC, а на другой - система кодирования ASCII. Более того, получить от IBM детальную документацию по многочисленным версиям EBCDIC было чрезвычайно сложно (что ещё более утвердило мнение о том, что главной целью EBCDIC было удерживать покупателей систем, произведённых IBM, в "паутине" этой корпорации), и международный обмен данными даже между "мэйнфреймами" IBM (использующими разные версии EBCDIC - прим. перев.) был сложной задачей для системных операторов, которые поэтому быстро стали лютыми врагами EBCDIC. В сегодняшнем основанном на Internet компьютерном мире, где для представления символов естественных языков используются 7-битная система кодирования ASCII и её 8-битные "расширения", утверждённые ISO, система кодирования EBCDIC служит только замедлению обмена информацией. По этой причине большинство коммерческих организаций, которые успели накопить данные, записанные с использованием EBCDIC и других фирменных систем кодирования, конвертируют их в данные, записанные с использованием системы кодирования ASCII.

Системы кодирования для представления специфических символов европейских языков

В то время как системы кодирования ASCII и ISO 646, в которых использовался 7-битный метод кодирования, были достаточны для обработки данных на английском языке, в частности данных на современном английском языке, они не подходили для обработки данных, написанных с применением специфических символов, используемых в языках большинства стран Европы. В основном это буквы латинского алфавита с проставленными над ними ударениями и диакритическими знаками. Кроме того, в ряде европейских государств (в частности в Греции) используются свои собственные алфавиты, символы которых отличны от латинских букв. Это же касается и алфавитов ряда неевропейских государств - русской кириллицы*, арабского письма и израильского иврита. Соответственно, после стандартизации систем кодирования ASCII и ISO 646, стала очевидной необходимость в создании ряда новых систем кодирования - для представления символов, используемых в указанных алфавитах, и удовлетворения, таким образом, потребностей европейских государств по работе с данными. Для этого ISO первоначально создала стандарт ISO 2022, который указывает, как должны быть структурированы и развиты существующие 7-битные и 8-битные системы кодирования. Этот стандарт был позднее применён для создания стандарта ISO 8859-1 (имеющего неофициальное название "Latin-1"). ISO 8859-1 определяет таблицу символов одного из 8-битных "расширений системы кодирования ASCII", которое сегодня широко используется для обмена информацией через Internet в странах Западной Европы.

Стандарт ISO 2022 определяет, среди прочего:

? каким образом осуществляется "раскладка" таблиц символов, используемых в 7-битных и 8-битных системах кодирования (8 вертикальных и 16 горизонтальных рядов для таблиц символов 7-битных систем кодирования; по 16 вертикальных и горизонтальных рядов для таблиц символов 8-битных систем кодирования);

? порядок нумерации рядов в этих таблицах (для 7-битных систем кодирования: вертикальные ряды: с 0-го по 7-й, горизонтальные: с 0-го по 15-й; для 8-битных систем кодирования: вертикальные ряды: с 0-го по 15-й, горизонтальные ряды: тоже с 0-го по 15-й);

? какова внутренняя структура этих таблиц (таблицы, используемые в 7-битных системах кодирования, разбиваются на области [area] CL и GL, а в 8-битных - на области CL, GL, CR и GR. Области, содержащие в названии C, отведены под управляющие последовательности, а области, содержащие в названии G - под символы);

? специальные зарезервированные ячейки [fixed assignments] в этих таблицах, предназначенные для управляющих символов: "escape " (ESC ; позиция в таблице: горизонтальный ряд 0, вертикальный ряд 11), пробел (SP: 2,0) и "delete " (DEL: 7,15). Номера этих ячеек соответствуют их номерам в таблице символов, используемой в системе кодирования ASCII (табл. 5).

Тем не менее, в отличие от системы кодирования ASCII, в которой управляющий символ "escape" использовался для реализации функций, аналогичных "возврату каретки" пишущей машинки, в ISO 2022 этот символ существует для обеспечения "собственно компьютерных" управляющих функций, например, для использования в так называемых escape-последовательностях, предназначенных для переключения таблиц символов.

Наконец, в стандарте ISO 2022 также определена (англоязычная - прим. перев.) терминология, используемая при описании кодов, предназначенных для представления символов естественных языков. Поэтому мы рекомендуем тем, кто хочет стать специалистом в данной области, начать её изучение с данного стандарта.

С тех пор как ISO 2022 занял место международного стандарта, он позволил всем другим кодам для представления символов естественных языков использовать в качестве базы ISO 646. Разработчики сравнивали его с пишущей машинкой, печатающие головки у которой можно менять - этими "печатающими головками" стали 7-битные и 8-битные коды, составленные в соответствии с ISO 2022. Наиболее важное "семейство" этих взаимозаменяемых "печатающих головок" было определено в ISO 8859. Этот документ описывает большой набор из 8-битных кодов, нацеленный на удовлетворение нужд по обработке данных стран Западной и Восточной Европы. Он (набор из 8-битных кодов) выглядит следующим образом:

ISO 8859

+--Часть 1: Латинский алфавит No. 1 (Пересмотрен в 1998-м году).

| Набор символов, используемых в языках стран Западной Европы (известный также

| как знаменитый "Latin-1");

+--Часть 2: Латинский алфавит No. 2

| Набор символов, используемых в языках стран Восточной Европы (сербо-хорватском,

| албанском, венгерском, румынском);

+--Часть 3: Латинский алфавит No. 3

| Набор символов, используемых в языках стран Южной Европы (в частности в

| мальтийском языке) и в языке эсперанто;

+--Часть 4: Латинский алфавит No. 4 (1998)

| Набор символов, используемых в языках стран Северной Европы (скандинавских);

+--Часть 5: Латинский алфавит и кириллица;

+--Часть 6: Латинский и арабский алфавиты;

+--Часть 7: Латинский и греческий алфавиты;

+--Часть 8: Латинский алфавит и иврит;

+--Часть 9: Латинский алфавит No. 5

| Набор символов, используемых в современном турецком языке;

+--Часть 10: Латинский алфавит No. 6 (1998)

| Набор символов, используемых в исландском, нордических и балтийских языках;

+--Часть 13 (DIS) Латинский алфавит No. 7;

+--Часть 14 (DIS) Латинский алфавит No. 8 (символы кельтского языка).

Конечно, каждый знает, что в реальном мире коммерческие структуры не спешат соблюдать стандарты, особенно если это стандарты иностранных государств. И именно так случилось с ISO 8859 *. ISO 8859 не получил широкого распространения до тех пор, пока не появились персональные компьютеры (ПК). А поскольку ПК были, по сути, изобретением американцев, американская компьютерная индустрия посчитала себя вправе и стала адаптировать стандарты ISO для собственных нужд. Следствием этого стали используемые в ПК ОС, в которых использовались таблицы символов со специфическими для этих ОС "расширениями", которые не были полностью (слово "полностью", на самом деле, правильнее было бы опустить - прим. перев.) совместимы с ISO 8859. Хотите увидеть результат? Если Вы используете ОС Windows, взгляните на пункт "Document Encoding " в меню Вашего Web-броузера (в Netscape Navigator он доступен через меню "Options"). Там Вы обнаружите перечень различных таблиц символов, используемых в Windows и MacOS.

К счастью **, разработчики сети Internet создали такие протоколы для передачи данных, которые допускали использование абсолютно любых таблиц символов для представления текстовых данных, - даже будь эта таблица разработана одним человеком (см. нижние пункты в меню "Document Encoding" ) - передаваемых через сеть. Различия этих таблиц символов, таким образом, имеют характер вызывающих раздражение затруднений, но не непреодолимого барьера, для международного обмена данными.

Коды "CJK" для представления символов китайского, японского и корейского языков

(аббревиатура CJK происходит от "Chinese, Japanese, Korean" - прим. перев.)

Коды, использовавшиеся в телеграфии

В странах Восточной Азии, как и в США и в Европе, первые коды для представления символов национальных языков были разработаны для использования в телеграфии. Некоторые могут спросить, зачем они создавались специально, ведь существуют системы "латинизации" (представления иероглифов с помощью символов латинского алфавита, используемых для описания звуковых эквивалентов иероглифов - прим. перев.), позволяющие посылать данные, используя код Морзе?

На самом деле, "латинизация" не позволяет точно передать названия мест и личные имена, написанные китайскими иероглифами, так как существует слишком много омонимов (т.е. слов, которые пишутся по-разному, а звучат одинаково - прим. перев.). Поэтому и понадобилось пронумеровать тысячи символов китайского языка. Кроме того, были и другие соображения. Во времена расцвета телеграфа в Восточной Азии существовало только несколько публичных учебных заведений, и поэтому большинство получателей "латинизированной" телеграммы просто не смогли бы её прочесть.

Кроме того, в своё время посылка телеграфных сообщений стоила денег ( кое-где это до сих пор так... - прим. перев.), и притом очень больших. А поскольку использование "латинизации" влекло за собой удлинение сообщения, стоимость его посылки возрастала соответствующим образом. Случалось так, что в начале XX-го века стоимость посылки телеграфных сообщений была так высока, что даже в США и в Европе создавались специальные корпоративные и/или промышленные телеграфные коды для соединения нескольких слов в одно для того, чтобы экономить деньги при посылке сообщений* (здесь находится более подробная информация на эту тему).

В результате символы языков стран Восточной Азии были впервые пронумерованы и разделены на наборы ещё во времена телеграфа. Тем не менее, наиболее важными кодами для представления символов этих языков были те, что были разработаны для использования в компьютерных системах в 1970-х, 1980-х и 1990-х гг., поскольку с тех пор именно они находятся в широком использовании.

Коды для представления символов японского языка, используемые в компьютерах

Европейцы были не последними людьми, которые базировали коды для представления символов своих национальных языков на рекомендации ISO 646. На другой стороне земного шара, в Японии, японская электронная индустрия была в процессе превращения себя в мировую силу, и одной из важнейших задач, на решении которой она сфокусировалась, была разработка компьютерных технологий, которые позволили бы работать с текстовыми данными, подготовленными на японском языке. Для достижения этой цели Японский Комитет по Промышленным Стандартам (Japan Industrial Standards Committee, JISC - аналог русского ГОСТ) поставил задачу утверждения таблиц символов для обеспечения информационного обмена на японском языке. Заметим, однако, что обеспечение работы компьютера с символами японского языка является значительно более сложной задачей, чем адаптация компьютера к работе с текстами на английском и других европейских языках.

В то время как для представления символов английского и других европейских языков достаточно использования 7-битных и 8-битных кодов, для японского языка использование 16-битного кода является обязательным условием. Это потому, что в японском языке используются четыре вида письменности: две слоговые (силлабические) "азбуки" kana - katakana и hiragana (далее в тексте такие термины на русский по ряду причин не переводятся - прим. перев.), несколько тысяч символов kanji (символы, заимствованные из китайского языка) и латиница. Несмотря на это, в 1970-х был создан 8-битный код JIS, предназначенный для работы с японским языком в "усечённом виде". Он назывался JIS C 6220 и в 1987-м году был переименован в JIS X 0201-1976.

Первая из 7-битных "половинок" его таблицы символов соответствовала "адаптированному для Японии" (полагаю, кавычки здесь уместны, см. ниже, почему - прим. перев.) национальному варианту ISO 646 (в нём место косой черты - "backslash " - было занято символом йены, и на месте тильды "~ " был расположен знак надчёркивания), а вторая была заполнена символами японских знаков препинания (например, начертание точки в японском языке отличается от начертания, принятого в европейских языках - прим. перев.) и символами слоговой азбуки katakana. Это позволяло осуществлять обмен текстовыми данными в ранних японских компьютерных системах. Таким образом, JIS X 0201-1976 включал в себя (в скобках указывается количество символов):

JIS X 0201-1976

|

+--символы цифр (10)

|

+--символы латинского алфавита (52)

|

+--специальные символы (32)

|

+--непечатаемые символы (34)

|

+--символы слоговой азбуки katakana (63 полуширинных символа, т.е.,

изображение одного иероглифа составлялось из двух последовательно

печатаемых символов; таким образом, каждый целый символ кодировался

с помощью 16-ти бит).

Конечно, поскольку первый японский код для представления символов японского языка не включал в себя даже слоговой азбуки hiragana (которая используется для написания собственно японских слов, в то время как с помощью katakana пишутся слова, заимствованные из других языков - прим. перев.), каждый, кто хотел легко и просто "сделать деньги" (на продаже компьютерной техники в Японии), должен был сделать ставку на то, что JISC должен будет скоро разработать эквивалент стандарта ISO 2022 для японского языка, который позволял бы переключатся между несколькими 8-битными таблицами символов. И JISC сделал это, назвав соответствующий стандарт JIS X 0202, который был опубликован на двух языках - японском и английском.

Затем JISC приступил к разработке таблиц символов (94x94) для большого количества символов kanji, используемых для письма в японском языке. В стандартах JIS символы kanji распределены по "уровням", хотя были среди них и такие, которые попали в число "вспомогательных и дополнительных kanji стандарта JIS", определённых отдельно. Первый из вышеуказанных "уровней" появился в стандарте JIS C 6226-1978, или т.н. "старом JIS". Позднее "старый JIS" переопределили, чтобы включить в него Jooyo kanji [символы kanji для повседневного использования], перечень которых был утверждён японским правительством в 1981-м году; это привело к установлению стандарта JIS 6226-1983, или т.н. "нового JIS". "Новый JIS" впоследствии был переименован в JIS X 0208-1983 в 1987-м году. И ещё позднее, в 1990-м, к kanji 1-го "уровня" были добавлены kanji 2-го "уровня", так появился стандарт JIS X 0208-1990, который сейчас является наиболее широко используемым. В дополнение к перечисленным, был выпущен ещё стандарт для представления дополнительных символов kanji, JIS X 0212-1990, однако в настоящее время его поддержка обеспечивается только в одной ОС для ПК (ОС, соответствующей спецификации BTRON, см. ниже).

Перечень символов, вошедших в эти два стандарта 1990-го года:

JIS X 0208-1990

|

+--знаки препинания, разные символы (93, 53)

|

+--алфавитно-цифровые символы, определённые в ISO 646 (10 цифр, 52 символа

| латиницы)

|

+--hiragana (83)

|

+--katakana (86)

|

+--греческий алфавит (48 - по 24 заглавные и строчные буквы)

|

+--современная кириллица (русский алфавит*) (66 - по 33 заглавные и строчные

| буквы)

|

+--символы для рисования линий (32)

|

+--kanji 1-го уровня (2 965 символов, упорядоченных в соответствии с

| китайским стилем чтения)

|

+--kanji 2-го уровня (3 390 символов, упорядоченных в соответствии с

| корнями соответствующих китайских слов)

|

+--различные kanji (6 символов)

JIS X 0212-1990

|

+--диакритические знаки и символы (21)

|

+--греческие символы (21 буква с диакритическими знаками)

|

+--символы, используемые в языках стран Восточной Европы (26)

|

+--алфавитные символы (198)

|

+--kanji (5 801 символов)

Как видно из вышеприведённого перечня, JIS X 0208-1990 является кодом для представления символов многих языков. В своём оригинальном виде стандарт JIS предполагал использование специальных escape-последовательностей - которые могли быть очень сложными - для переключения между символами ISO 646, для представления которых используется 7 бит, и символами kanji, для представления которых используется 16 бит. Однако поскольку всё это требует дополнительных затрат времени при работе с текстом и "съедает" много места на носителе информации, стандарт JIS в оригинальном виде был, надо понимать, неподходящим вариантом для использования в небольших компьютерных системах, таких как ранние 16-битные ПК.

Чтобы решить эту проблему, корпорация Microsoft изобрела "метод кодирования" для символов, описанных в стандартах JIS, названный Shift-JIS (или просто SJIS - прим. перев.) В нём нет escape-последовательностей и, соответственно, нет необходимости в переключении между частями этой таблицы. Это реализовано с помощью указания диапазона значения для 8-битных (алфавитных) символов и 1-го байта 16-битных (kanji) символов. В зависимости от значения, которое он находит в данных, кодирующих символ, компьютер определяет, столкнулся ли он с кодируемым 8-ю битами алфавитным символом или же с первым байтом кодируемого 16-ю битами символом kanji, и отображает их необходимым образом.

У этого метода есть два серьёзных недостатка. Первый состоит в том, что утверждённые Microsoft границы диапазонов не позволяют использовать все символы, определённые в стандартах JIS. Как следствие, компьютеры, в которых используется Shift-JIS, могут работать только с символами, описанными в стандарте JIS X 0208-1990, и не поддерживают kanji, описанными в стандарте JIS X 0212-1990 (так как они не вошли в фиксированную таблицу символов кода Shift-JIS). Второй недостаток - это то, что без использования специального ПО компьютер, в котором используется Shift-JIS, может работать только с такими текстовыми данными, в которых символы представлены с помощью 8-битных и 16-битных кодов. В таких средствах коммуникации, как Internet, эти данные в ряде случаев кодируются с помощью 7-битных кодов, что приводит к их искажению (разрушению) после загрузки.


Подобные документы

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

    презентация [756,5 K], добавлен 29.10.2013

  • Разработка утилиты кодирования и декодирования формата Base 64 в программной среде Linux с использованием компилятора. Написание программы на языке С++. Кодирование символьной строки любого набора байт в последовательность печатных ASCII символов.

    курсовая работа [1,4 M], добавлен 10.09.2013

  • Методы арифметического кодирования. Основные функции программ, реализующие алгоритмы кодирования по методам Хаффмана, Голомба, Фибоначчи и Элиаса. Разработка программно-аппаратных средств оптимального арифметического кодирования и их экономический расчет.

    дипломная работа [1,1 M], добавлен 26.05.2012

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

    курсовая работа [55,8 K], добавлен 23.04.2014

  • Анализ эффективности способов кодирования. Средний размер одного разряда и средняя длина кодового слова. Кодирование по методу Хаффмена. Кодирование информации по методу Шенона-Фано. Построение кодового дерево для различных методов кодирования.

    контрольная работа [491,4 K], добавлен 15.10.2013

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

    презентация [16,3 K], добавлен 07.06.2011

  • История классификации и кодирования. Стандартизация передачи записей в электронную историю болезни. Клинические коды Рида RCC. Системы медицинской классификации в Украине. Унифицированная система медицинского языка UMLS. Особенности и классификация кодов.

    реферат [38,2 K], добавлен 13.12.2009

  • Представление информации в двоичной системе. Необходимость кодирования в программировании. Кодирование графической информации, чисел, текста, звука. Разница между кодированием и шифрованием. Двоичное кодирование символьной (текстовой) информации.

    реферат [31,7 K], добавлен 27.03.2010

  • Определение понятий кода, кодирования и декодирования, виды, правила и задачи кодирования. Применение теорем Шеннона в теории связи. Классификация, параметры и построение помехоустойчивых кодов. Методы передачи кодов. Пример построения кода Шеннона.

    курсовая работа [212,6 K], добавлен 25.02.2009

  • Изучение методов кодирования Хаффмана, Фано. Модель информационной системы Шеннона. Среднестатистическая информационная емкость сообщений для эргодических источников с заданным распределением частот символов. Формулы Хартли для удельной емкости на символ.

    презентация [528,9 K], добавлен 19.10.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.