Что такое код в информатике

Кодирование информации

Определение:
Кодирование информации (англ. information coding) — отображение данных на кодовые слова.

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

Содержание

Код [ править ]

Виды кодов [ править ]

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

Примеры кодов [ править ]

Однозначно декодируемый код [ править ]

Определение:
Однозначно декодируемый код (англ. uniquely decodable code) — код, в котором любое слово составленное из кодовых слов можно декодировать только единственным способом.

Пусть есть код заданный следующей кодовой таблицей:

[math]a_1 \rightarrow b_1[/math]

[math]a_2 \rightarrow b_2[/math]

[math]a_k \rightarrow b_k[/math]

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

Всегда выполняются равенства:

Заметим, что если среди кодовых слов будут одинаковые, то однозначно декодировать этот код мы уже не сможем.

Префиксный код [ править ]

Определение:
Префиксный код (англ. prefix code) — код, в котором никакое кодовое слово не является префиксом какого-то другого кодового слова.

Предпочтение префиксным кодам отдается из-за того, что они упрощают декодирование. Поскольку никакое кодовое слово не выступает в роли префикса другого, кодовое слово, с которого начинается файл, определяется однозначно, как и все последующие кодовые слова.

Пример кодирования [ править ]

Закодируем строку [math]abacaba[/math] :

Такой код можно однозначно разбить на слова:

[math]00\ 01\ 00\ 1\ 00\ 01\ 00[/math]

Преимущества префиксных кодов [ править ]

Недостатки префиксных кодов [ править ]

Пример неудачного декодирования [ править ]

Предположим, что последовательность [math]abacaba[/math] из примера передалась неверно и стала:

[math]c^<**>(abacaba) = 0001001\ 1\ 00100[/math]

Разобьем ее согласно словарю:

[math] 00\ 01\ 00\ 1\ 1\ 00\ 1\ 00[/math]

[math]a\quad b\quad a\ c\ c\quad a\ c\ a[/math]

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

Не префиксный однозначно декодируемый код [ править ]

Как уже было сказано, префиксный код всегда однозначно декодируем. Обратное в общем случае неверно:

Мы можем ее однозначно декодировать, так как знаем, что слева от двойки и справа от тройки всегда стоит единица.

После декодирования получаем: [math]abbca[/math]

Источник

Кодирование для чайников, ч.1

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

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

0. Начало

Давайте рассмотрим некоторые более подробно.

1.1 Речь, мимика, жесты

1.2 Чередующиеся сигналы

В примитивном виде кодирование чередующимися сигналами используется человечеством очень давно. В предыдущем разделе мы сказали про дым и огонь. Если между наблюдателем и источником огня ставить и убирать препятствие, то наблюдателю будет казаться, что он видит чередующиеся сигналы «включено/выключено». Меняя частоту таких включений мы можем выработать последовательность кодов, которая будет однозначно трактоваться принимающей стороной.

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

1.3 Контекст

2. Кодирование текста

Текст в компьютере является частью 256 символов, для каждого отводится один байт и в качестве кода могут быть использованы значения от 0 до 255. Так как данные в ПК представлены в двоичной системе счисления, то один байт (в значении ноль) равен записи 00000000, а 255 как 11111111. Чтение такого представления числа происходит справа налево, то есть один будет записано как 00000001.

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

Тестовая фраза «ЕХАЛ ГРЕКА ЧЕРЕЗ РЕКУ ВИДИТ ГРЕКА В РЕЧКЕ РАК СУНУЛ ГРЕКА РУКУ В РЕКУ РАК ЗА РУКУ ГРЕКУ ЦАП».

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

2.1 Блочное кодирование

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

Источник

Кодирование информации. Коды. Системы кодирования

Урок 4. Информатика 8 класс

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

В данный момент вы не можете посмотреть или раздать видеоурок ученикам

Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобрев в каталоге.

Получите невероятные возможности

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

Конспект урока «Кодирование информации. Коды. Системы кодирования»

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

Все множество символов, используемых для кодирования, называется алфавитом кодирования. Например, в памяти компьютера любая информация кодируется с помощью двоичного алфавита, содержащего всего два символа: 0 и 1.

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

Код состоит из определенного количества знаков, т. е. имеет определенную длину.

Количество знаков в коде называется длиной кода.

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

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

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

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

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

Средством перекодирования служит таблица соответствия знаковых систем (таблица перекодировки), которая устанавливает взаимно однозначное соответствие между знаками или группами знаков двух различных знаковых систем.

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

Чаще всего кодированию подвергаются тексты на естественных языках. Существуют 3 основных способа кодирования текста:

Полный набор символов, используемый для кодирования текста, называется алфавитом или азбукой.

Рассмотрим некоторые способы кодирования.

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

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

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

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

Информация кодируется тремя «буквами»:

· длинный сигнал (тире),

· короткий сигнал (точка),

· отсутствие сигнала (пауза) для разделения букв.

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

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

4. Шифр Цезаря. Этот шифр реализует следующее преобразование текста: каждая буква исходного текста заменяется третьей после нее буквой в алфавите, которая считается написанным по кругу.

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

5. Перевод чисел из одной системы счисления в другую.

Пусть требуется перевести двоичное число в десятичную систему счисления.

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

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

Запишем число в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 2:

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

И вычислив по правилам десятичной арифметики, получили число 232.

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

Если старшая триада не заполнена до конца, как в нашем случае, следует дописать в ее старшие разряды нули. После этого необходимо заменить двоичные триады, начиная с младшей, на числа, равные им в восьмеричной системе. Это числа: 4, 7, 6, 6, 4, 5, 5, 2.

Таким образом, наше двоичное число запишется в виде:

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

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

Заменяя двоичные тетрады на их шестнадцатеричные значения, то есть на C, B, D, C, 6, 5, получим искомое шестнадцатеричное число:

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

А теперь давайте мы попробуем перевести число 158 из десятичной в двоичную систему счисления. Для этого нужно выполнить последовательное деление нацело числа 158 на основании новой системы счисления, то есть на 2. Получим:

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

Далее число 79 делим на 2. Аналогичные действия выполняем до тех пор, пока частное не станет равным единице.

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

Затем запишем остатки от деления в обратном порядке, заменив их цифрами новой системы счисления, т.е. получили число 11101000.

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

Пусть требуется перевести шестнадцатеричное число F1 в двоичное число. Воспользовавшись таблицей соответствия, получим:

Что такое код в информатике. Смотреть фото Что такое код в информатике. Смотреть картинку Что такое код в информатике. Картинка про Что такое код в информатике. Фото Что такое код в информатике

F соответствуют четыре единицы в двоичной системе счисления, а 1 соответствует такая запись 0, 0, 0, 1 в двоичной системе счисления.

Итак, число F1 в двоичной системе счисления запишется так 11110001.

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

Источник

Что такое код в информатике

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

Это свет, звук, запах, касания; это слова, значки, символы, жесты и движения.

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

Так, услышав звонок будильника, человек понимает, что пришло время просыпаться;

телефонный звонок — кому-то нужно с нами поговорить;

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

Для правильного понятия разных сигналов требуется разработка кода или кодирование.

Код — это система условных знаков для представления информации.

Кодирование — это перевод информации в удобную для передачи, обработки или хранения форму с помощью некоторого кода.

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

Обратное преобразование называется декодированием.

Декодирование — это процесс восстановления содержания закодированной информации.

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

Существует три основных способа кодирования информации:

●Числовой способ — с помощью чисел.

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

●Графический способ — информация кодируется с помощью рисунков или значков.

Существует равномерное и неравномерное кодирование. При равномерном кодировании сообщение декодируется однозначно. При неравномерном кодировании для однозначного декодирования сообщения нужно, чтобы выполнялось прямое и обратное условие Фано(прямое: никакой код не должен быть началом другого кода, обратное: никакой код не должен быть концом другого кода)

Понимать, что мы можем закодировать сообщение, даже если условие Фано не выполняется, но возможно не сможем его однозначно декодировать.

Однозначно декодировать –получить один единственный точный вариант.

Двоичное кодирование информации в компьютере.

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

· электромагнитные реле (замкнуто/разомкнуто), широко использовались в конструкциях первых ЭВМ;

· участок поверхности магнитного носителя информации (намагничен/размагничен);

· участок поверхности лазерного диска (отражает/не отражает);

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

Кодирование текстовой информации.

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

Для кодировки русского алфавита были разработаны несколько вариантов кодировок:

2) КОИ-8 (Код Обмена Информацией, восьмизначный) – другая популярная кодировка российского алфавита, распространенная в компьютерных сетях.

3) ISO (InternationalStandardOrganization – Международный институт стандартизации) – международный стандарт кодирования символов русского языка. На практике эта кодировка используется редко.

Ограниченный набор кодов (256) создает трудности для разработчиков единой системы кодирования текстовой информации. Вследствие этого было предложено кодировать символы не 8-разрядными двоичными числами, а числами с большим разрядом, что вызвало расширение диапазона возможных значений кодов. Система 16-разрядного кодирования символов называется универсальной – UNICODE.

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

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

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

В основу кодирования цветных графических изображений положен принцип разложения произвольного цвета на основные составляющие, в качестве которых применяются три основных цвета: красный (Red), зеленый (Green) и синий (Blue). На практике принимается, что любой цвет, который воспринимает человеческий глаз, можно получить с помощью механической комбинации этих трех цветов. Такая система кодирования называется RGB. При применении 24 двоичных разрядов для кодирования цветной графики такой режим носит название полноцветного (TrueColor).

Для любого из основных цветов дополнительным будет являться цвет, который образован суммой пары остальных основных цветов. Соответственно среди дополнительных цветов можно выделить голубой (Cyan), пурпурный (Magenta) и желтый (Yellow). Принцип разложения произвольного цвета на составляющие компоненты используется не только для основных цветов, но и для дополнительных. Этот метод кодирования цвета применяется в полиграфии, но там используется еще и четвертая краска – черная (Black), поэтому эта система кодирования обозначается четырьмя буквами – CMYK. Для представления цветной графики в этой системе применяется 32 двоичных разряда. Данный режим также носит название полноцветного.

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

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

В основе метода FM (FrequencyModulation) положено утверждение о том, что теоретически любой сложный звук может быть представлен в виде разложения на последовательность простейших гармонических сигналов разных частот. Каждый из этих гармонических сигналов представляет собой правильную синусоиду и поэтому может быть описан числовыми параметрами или закодирован. Звуковые сигналы образуют непрерывный спектр. Обратное преобразование, которое необходимо для воспроизведения звука, закодированного числовым кодом, производится с помощью цифроаналоговых преобразователей (ЦАП). Из-за таких преобразований звуковых сигналов возникают потери информации, которые связаны с методом кодирования, поэтому качество звукозаписи с помощью метода FM обычно получается недостаточно удовлетворительным. Этот метод широко использовался в те годы, когда ресурсы средств вычислительной техники были явно недостаточны.

Основная идея метода таблично-волнового синтеза (Wave-Table) состоит в том, что в заранее подготовленных таблицах находятся образцы звуков для множества различных музыкальных инструментов. Данные звуковые образцы носят название сэмплов. Числовые коды, которые заложены в сэмпле, выражают такие его характеристики, как тип инструмента, номер его модели, высоту тона и тд. Поскольку для образцов применяются реальные звуки, то качество закодированной звуковой информации получается очень высоким и приближается к звучанию реальных музыкальных инструментов, что в большей степени соответствует нынешнему уровню развития современной компьютерной техники.

Множество кодов очень прочно вошло в нашу жизнь.

●числовая информация кодируется арабскими, римскими цифрами и др.

●для общения и письма мы используем код — русский язык, в Китае — китайский и т.д.

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

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

Для передачи информации, людьми были придуманы специальные коды, к ним относятся:

Источник

Что такое код в информатике

22. КОДИРОВАНИЕ ИНФОРМАЦИИ

22.1. Общие сведения

В качестве элементов кодируемой информации могут выступать:

— буквы, слова и фразы естественного языка;

— различные символы, такие как знаки препинания, арифметические и логические операции, операторы сравнения и т.д. Следует отметить, что сами знаки операций и операторы сравнения – это кодовые обозначения;

— ситуации и явления;

Кодовые обозначения могут представлять собой:

— буквы и сочетания букв естественного языка;

— световые и звуковые сигналы;

— набор и сочетание химических молекул;

Кодирование может выполняться в целях:

— удобства хранения, обработки и передачи информации (как правило, закодированная информация представляется более компактно, а также пригодна для обработки и передачи автоматическими программно-техническими средствами);

— удобства информационного обмена между субъектами;

— идентификации объектов и субъектов;

— сокрытия секретной информации;

Кодирование информации бывает одно- и многоуровневым. Примером одноуровневого кодирования служат световые сигналы, подаваемые светофором (красный – стой, желтый – приготовиться, зеленый – вперед). В качестве многоуровневого кодирования можно привести представление визуального (графического) образа в виде файла фотографии. Вначале визуальная картинка разбивается на составляющие элементарные элементы (пикселы), т.е. каждая отдельная часть визуальной картинки кодируется элементарным элементом. Каждый элемент представляется (кодируется) в виде набора элементарных цветов (RGB: англ. red – красный, green – зеленый, blue – синий) соответствующей интенсивностью, которая в свою очередь представляется в виде числового значения. Впоследствии наборы чисел, как правило, преобразуются (кодируются) с целью более компактного представления информации (например, в форматах jpeg, png и т.д.). И наконец, итоговые числа представляются (кодируются) в виде электромагнитных сигналов для передачи по каналам связи или областей на носителе информации. Следует отметить, что сами числа при программной обработке представляются в соответствии с принятой системой кодирования чисел.

Кодирование информации может быть обратимым и необратимым. При обратимом кодировании на основе закодированного сообщения можно однозначно (без потери качества) восстановить кодируемое сообщение (исходный образ). Например, кодирование с помощью азбуки Морзе или штрихкода. При необратимом кодировании однозначное восстановление исходного образа невозможно. Например, кодирование аудиовизуальной информации (форматы jpg, mp3 или avi) или хеширование.

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

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

22.2. Общедоступные кодовые системы

В качестве других распространенных кодовых систем можно привести:

— обозначение химических элементов из периодической таблицы Дмитрия Ивановича Менделеева;

— сокращенные наименования дисциплин в расписании занятий студентов.

Ниже приводится описание других общедоступных кодовых систем в целях иллюстрации многообразия их назначения и способов представления кодовых обозначений [17].

Русская
буква
Латинская
буква
Код МорзеРусская
буква
Латинская
буква
Код МорзеСимволКод Морзе
AA· —РR· — ·1· — — — —
БB— · · ·СS· · ·2· · — — —
ВW· — —ТT3· · · — —
ГG— — ·УU· · —4· · · · —
ДD— · ·ФF· · — ·5· · · · ·
Е (Ё)E·ХH· · · ·6— · · · ·
ЖV· · · —ЦC— · — ·7— — · · ·
ЗZ— — · ·ЧO— — — ·8— — — · ·
ИI· ·ШCH— — — —9— — — — ·
ЙJ· — — —ЩQ— — · —0— — — — —
КK— · —ЪN— — · — —Точка· · · · · ·
ЛL· — · ·ЫY— · — —Запятая· — · — · —
МM— —Ь (Ъ)X— · · —· · — — · ·
НN— ·ЭE· · — · ·!— — · · — —
ОO— — —ЮU· · — —@· — — · — ·
ПP· — — ·ЯA· — · —Конец связи (end contact)· · — · —

Рис.22.1. Фрагмент азбуки Морзе

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

Любопытный факт связан с изобретателем первой лампочки Томасом Альвой Эдисоном (1847-1931 гг.). Он плохо слышал и общался со своей женой, Мэри Стиуэлл, с помощью азбуки Морзе. Во время ухаживания Эдисон сделал предложение, отстучав слова рукой, и она ответила тем же способом. Телеграфный код стал обычным средством общения для супругов. Даже когда они ходили в театр, Эдисон клал руку Мэри себе на колено, чтобы она могла «телеграфировать» ему диалоги актеров [44].

Управляющие символы
Двоичный
код
Десятичный
код
Назначение
010008Возврат каретки
000102Перевод строки
1111131Буквы латинские
1101127Цифры
001004Пробел
000000Буквы русские
Буквы, цифры и остальные символы
Двоичный
код
Десятичный
код
Латинская
буква
Русская
буква
Цифры и
прочие символы
000113AА
1100125BБ?
0111014CЦ:
010019DДКто там?
000011EЕЗ
0110113FФЭ
1101026GГШ
1010020HХЩ
001106IИ8
0101111JЙЮ
0111115KК(
1001018LЛ)
1110028MМ.
0110012NН,
1100024OО9
1011022PП0
1011123QЯ1
0101010RР4
001015SС
1000016TТ5
001117UУ7
1111030VЖ=
1001119WВ2
1110129XЬ/
1010121YЫ6
1000117ZЗ+

Рис.22.2. Стандарт кода Бодо МТК-2

На следующем рисунке показана телетайпная перфолента с сообщением, переданным с помощью кода Бодо.

Рис. 22.3. Перфолента с кодом Бодо

Следует отметить два интересных факта, связанных с кодом Бодо.

1. Сотрудники телеграфной компании AT&T Гильберто Вернам и Мейджор Джозеф Моборн в 1917 г. предложили идею автоматического шифрования телеграфных сообщений на основе кода Бодо. Шифрование выполнялось методом гаммирования по модулю 2.

2. Соответствие между английским и русским алфавитами, принятое в МТК-2, было использовано при создании компьютерных кодировок КОИ-7 и КОИ-8.

Кодировка ASCIIДополнительные символы
Двоичный
код
Десятичный
код
СимволДвоичный
код
Десятичный
код
СимволДвоичный
код
Десятичный
код
СимволДвоичный
код
Десятичный
код
Символ
000000000NUL0100000064@10000000128Ђ11000000192А
000000011SOH0100000165A10000001129Ѓ11000001193Б
000000102STX0100001066B1000001013011000010194В
000000113ETX0100001167C10000011131ѓ11000011195Г
000001004EOT0100010068D1000010013211000100196Д
000001015ENQ0100010169E1000010113311000101197Е
000001106ACK0100011070F1000011013411000110198Ж
000001117BEL0100011171G1000011113511000111199З
000010008BS0100100072H1000100013611001000200И
000010019HT0100100173I1000100113711001001201Й
0000101010LF0100101074J10001010138Љ11001010202К
0000101111VT0100101175K1000101113911001011203Л
0000110012FF0100110076L10001100140Њ11001100204М
0000110113CR0100110177M10001101141Ќ11001101205Н
0000111014SO0100111078N10001110142Ћ11001110206О
0000111115SI0100111179O10001111143Џ11001111207П
0001000016DLE0101000080P10010000144ђ11010000208Р
0001000117DC10101000181Q1001000114511010001209С
0001001018DC20101001082R1001001014611010010210Т
0001001119DC30101001183S1001001114711010011211У
0001010020DC40101010084T1001010014811010100212Ф
0001010121NAK0101010185U1001010114911010101213Х
0001011022SYN0101011086V1001011015011010110214Ц
0001011123ETB0101011187W1001011115111010111215Ч
0001100024CAN0101100088X1001100015211011000216Ш
0001100125EM0101100189Y1001100115311011001217Щ
0001101026SUB0101101090Z10011010154љ11011010218Ъ
0001101127ESC0101101191[1001101115511011011219Ы
0001110028FS0101110092\10011100156њ11011100220Ь
0001110129GS0101110193]10011101157ќ11011101221Э
0001111030RS0101111094^10011110158ћ11011110222Ю
0001111131US0101111195_10011111159џ11011111223Я
00100000320110000096`1010000016011100000224а
0010000133!0110000197a10100001161Ў11100001225б
0010001034«0110001098b10100010162ў11100010226в
0010001135#0110001199c10100011163Ј11100011227г
0010010036$01100100100d10100100164¤11100100228д
0010010137%01100101101e10100101165Ґ11100101229е
0010011038&01100110102f10100110166¦11100110230ж
001001113901100111103g10100111167§11100111231з
0010100040(01101000104h10101000168Ё11101000232и
0010100141)01101001105i10101001169©11101001233й
0010101042*01101010106j10101010170Є11101010234к
0010101143+01101011107k10101011171«11101011235л
0010110044,01101100108l10101100172¬11101100236м
001011014501101101109m10101101173¬11101101237н
0010111046.01101110110n10101110174®11101110238о
0010111147/01101111111o10101111175Ї11101111239п
0011000048001110000112p10110000176°11110000240р
0011000149101110001113q10110001177±11110001241с
0011001050201110010114r10110010178І11110010242т
0011001151301110011115s10110011179і11110011243у
0011010052401110100116t10110100180ґ11110100244ф
0011010153501110101117u10110101181µ11110101245х
0011011054601110110118v1011011018211110110246ц
0011011155701110111119w10110111183·11110111247ч
0011100056801111000120x10111000184ё11111000248ш
0011100157901111001121y1011100118511111001249щ
0011101058:01111010122z10111010186є11111010250ъ
0011101159;01111011123 <10111011187»11111011251ы
00111100600111111012610111110190ѕ11111110254ю
0011111163?01111111127DEL10111111191ї11111111255я

Рис. 22.4. Кодовая страница Windows 1251

Коды в стандарте Unicode разделены на несколько разделов. Первые 128 кодов соответствуют кодировке ASCII. Далее расположены разделы букв различных письменностей, знаки пунктуации и технические символы. В частности прописным и строчным буквам русского алфавита соответствуют коды 1025 (Ё), 1040-1103 (А-я) и 1105 (ё).

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

Рис. 22.5. Нумерация точек

Каждому символу соответствует свой уникальный набор выпуклых точек. Таким образом, шрифт Брайля представляет собой систему для кодирования 2 6 = 64 символов. Но присутствие в шрифте управляющих символов (например, переход к буквам или цифрам) позволяет увеличить количество кодируемых символов.

Управляющие символы
Символ
шрифта
Брайля
Назначение
Буквы
Цифры
Буквы, цифры и остальные символы
Символ
шрифта
Брайля
Латинские
буквы
Русские
буквы
Цифры
AА1
BБ2
CЦ3
DД4
EЕ5
FФ6
GГ7
HХ8
IИ9
JЖ0
KК
LЛ
MМ
NН
OО
PП
QЧ
RР
SС
TТ
UУ
V
WВ
XЩ
Y
ZЗ
Ё
Й
Ш
Ъ
Ы
Ь
Э
Ю
Я
Точка
Запятая
Восклицательный знак
Вопросительный знак
Точка с запятой
Дефис
Пробел

Рис. 22.6. Шрифт Брайля

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

Рис. 22.7. Надпись «Sochi 2014» шрифтом Брайля на золотой медали Параолимпийских игр 2014г.

Убежденный в том, что система реализуема, Вудланд покинул Филадельфию и перебрался во Флориду в квартиру своего отца для продолжения работы. 20 октября 1949 г. Вудланд и Сильвер подали заявку на изобретение, которая была удовлетворена 7 октября 1952 г. Вместо привычных нам линий патент содержал описание штрихкодовой системы в виде концентрических кругов.

Рис. 22.8. Патент системы Вудланда и Сильвера с концентрическими кругами, предшественниками современных штрихкодов

Впервые штрихкоды начали официально использоваться в 1974 г. в магазинах г. Трой, штат Огайо [44]. Системы штрихового кодирования нашли широкое применение в общественной жизни: торговля, почтовые отправления, финансовые и судебные уведомления, учет единиц хранения, идентификация личностей, контактная информация (веб-ссылки, адреса электронной почты, телефонные номера) и т.д.

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

Таблица 22.1. Разновидности штрихкодов

Числа кодируются в т.н. форматах с фиксированной и плавающей запятой.

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

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

— вычитаемое число инвертируется (представляется в виде обратного кода);

— если количество разрядов результата получается больше, чем отведено на представление чисел, то крайний левый разряд (старший) отбрасывается, а к результату добавляется 12.

В следующей таблице приведены примеры вычитания.

Таблица 22.2. Примеры вычитания двух чисел с использованием обратного кода

X – Y5 – 56 – 55 – 65 – (-6)
X200000101000001100000010100000101
Y200000101000001010000011011111001
Замена сложением5 + (-5)6 + (-5)5 + (-6)5 + 6
Обратный код для вычитаемого (-Y2)11111010111110101111100100000110
Сложение00000101
+
11111010
11111111
00000110
+
11111010
100000000
00000101
+
11111001
11111110
00000101
+
00000110
00001011
Отбрасывание старшего разряда и добавление 12не требуется00000000
+
00000001
00000001
не требуетсяне требуется
Результат-01-111

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

В следующей таблице приведены некоторые числа в различном кодовом представлении.

Таблица 22.3. Представление чисел в различных кодах

Десятичное
представление
Код двоичного представления (8 бит)
прямойобратныйдополнительный
127011111110111111101111111
6000001100000011000000110
5000001010000010100000101
1000000010000000100000001
0000000000000000000000000
-01000000011111111
-1100000011111111011111111
-5100001011111101011111011
-6100001101111100111111010
-127111111111000000010000001
-12810000000

Таблица 22.4. Примеры вычитания двух чисел с использованием дополнительного кода

X – Y5 – 56 – 55 – 65 – (-6)
X200000101000001100000010100000101
Y200000101000001010000011011111010
Замена сложением5 + (-5)6 + (-5)5 + (-6)5 + 6
Дополнительный код для вычитаемого (-Y2)11111011111110111111101000000110
Сложение00000101
+
11111011
00000000
00000110
+
11111011
100000001
00000101
+
11111010
11111111
00000101
+
00000110
00001011
Отбрасывание старшего разряда и добавление 12не требуется00000001не требуетсяне требуется
Результат-01-111

Можно возразить, что представление чисел в дополнительных кодах требует на одну операцию больше (после инверсии всегда требуется сложение с 12), что может и не потребоваться в дальнейшем, как в примерах с обратными кодами. В данном случае срабатывает известный «принцип чайника». Лучше сделать процедуру линейной, чем применять в ней правила «Если A то B» (даже если оно одно). То, что с человеческой точки зрения кажется увеличением трудозатрат (вычислительной и временной сложности), с точки зрения программно-технической реализации может оказаться эффективней.

2. Формат с плавающей запятой, в основном, используется для вещественных чисел. Число в данном формате представляется в экспоненциальном виде

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

bbn7bn6bn5bn4bn3bn2bn1bbm15bm14bm13bm12bm11bm10bm9bm8bm7bm6bm5bm4bm3bm2bm1
знаквеличиназнаквеличина
порядокмантисса

Рис. 22.9. Двоичный формат представления чисел с плавающей запятой

Биты bn± и bm±, означающие знак порядка и мантиссы, кодируются аналогично числам с фиксированной запятой: для положительных чисел «0», для отрицательных – «1». Значение порядка выбирается таким образом, чтобы величина целой части мантиссы в десятичном (и соответственно в двоичном) представлении равнялась «1», что будет соответствовать нормализованной записи для двоичных чисел. Например, для числа 35010 порядок n = 810 = 0010002 (350 = 1.3671875 * 2 8 ), а для 57610 – n = 910 = 0010012 (576 = 1.125 * 2 9 ). Битовое представление величины порядка может быть выполнено в прямом, обратном или дополнительном коде (например, для n = 810 бинарный вид 0010002). Величина мантиссы отображает дробную часть. Для ее преобразования в двоичный вид, она последовательно умножается на 2, пока не станет равной 0. Например,

Рис. 22.10. Пример получения дробной части в бинарном виде

Целые части, получаемые в результате последовательного перемножения, и представляют собой двоичный вид дробной части (0.367187510 = 01011112). Оставшаяся часть разрядов величины мантиссы заполняется 0. Таким образом, итоговый вид числа 350 в формате с плавающей запятой с учетом представления мантиссы в нормализованной записи

000010000010111100000000
знак
+
величина
2 8
знак
+
величина
(1) + 0.3671875
порядокмантисса

Рис. 22.11. Двоичный вид числа 350

Рис. 22.12. Общий формат представления двоичных чисел в стандарте IEEE 754

Форматы представления отличаются количеством бит (байт), отводимым для представления чисел, и, соответственно, точностью представления самих чисел.

Таблица 22.5. Характеристики форматов представления двоичных чисел в стандарте IEEE 754

Величина мантиссы указывается, как и в предыдущем случае, в нормализованном виде.

C учетом вышеизложенного, число 35010 в формате одинарной точности стандарта IEEE 754 записывается следующим образом.

Рис. 22.13. Двоичный вид числа 350 по стандарту IEEE

В заключение по числам с плавающей запятой несколько слов о пресловутой «ошибке округления». Т.к. в двоичной форме представления числа хранится только несколько значащих цифр, она не может «покрыть» все многообразие вещественных чисел в заданном диапазоне. В результате, если число невозможно точно представить в двоичной форме, оно представляется ближайшим возможным. Например, если к числу типа double «0.0» последовательно добавлять «1.7», то можно обнаружить следующую «картину» изменения значений.

0.0
1.7
3.4
5.1
6.8
8.5
10.2
11.899999999999999
13.599999999999998
15.299999999999997
16.999999999999996
18.699999999999996
20.399999999999995
22.099999999999994
23.799999999999994
25.499999999999993
27.199999999999992
28.89999999999999
30.59999999999999
32.29999999999999
33.99999999999999
35.699999999999996
37.4
39.1
40.800000000000004
42.50000000000001
44.20000000000001
45.90000000000001
47.600000000000016

Рис. 22.14. Результат последовательного добавления числа 1.7 (Java 7)

Белки практически всех живых организмов построены из аминокислот всего 20 видов. Эти аминокислоты называют каноническими. Каждый белок представляет собой цепочку или несколько цепочек аминокислот, соединенных в строго определенной последовательности. Эта последовательность определяет строение белка, а, следовательно, все его биологические свойства. Синтез белков (т.е. реализация генетической информации в живых клетках) осуществляется на основе информации, заложенной в ДНК. Для кодирования каждой из 20 аминокислот, а также сигнала «стоп», означающего конец белковой последовательности, достаточно трех последовательных нуклеотидов (триплета).

Рис. 22.15. Фрагмент ДНК

3 Содержит азотистое основание, соединенное с сахаром, и фосфорную кислоту.

22.3. Секретные кодовые системы

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

Изобретение телеграфа и азбуки Морзе, а также прокладка трансатлантического кабеля в середине XIX в. значительно расширило сферы применения секретных кодов. Помимо традиционных областей их использования (в дипломатической переписке и в военных целях) они стали широко использоваться в коммерции и на транспорте. Секретные кодовые системы того времени в своем названии содержали слово «код» («Код Госдепартамента (1867 г.)», «Американский код для окопов», «Речные коды : Потомак», «Черный код») или «шифр» («Шифр Госдепартамента (1876 г.)», «Зеленый шифр»). Следует отметить, что, несмотря на наличие в названии слова «шифр», в основу этих систем было положено кодирование.

Рис. 22.16. Фрагмент «Шифра Госдепартамента (1899 г.)»

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

Таблица 22.6. Способы обеспечения конфиденциальности информации в секретных кодовых системах

2. Шифр Госдепартамента 1899 г.: Russia (Россия) – Promotes; Cabinet of Russia (Правительство России) – Promptings.

2. Номенклатор Джеймса Мэдисона (1781 г.): o – 527; p – 941.

Сочетание различных способов кодирования и перешифровки в кодовой системе было обычной практикой у разработчиков кодов и стало применяться практически с самого начала их появления. Так, еще в номенклаторе, использовавшемся в г. Сиена в XV в., помимо кодовых замен слов, применялись шифралфавиты для замены букв, их удвоенных сочетаний и пустых знаков. Наибольшего расцвета эта практика получила в конце XIX – начале XX вв. В частности в «Шифре Госдепартамента 1876 г.» (англ. Red Book – Красная книга), состоящем из 1200 страниц, и его дополнении «Неподдающийся декодированию код: дополнение к шифру Госдепартамента» применялись:

— кодовые обозначения в виде слов и чисел;

— 30 шифралфавитов для замены букв;

— 50 правил перешифрования, включая аддитивные числа, перестановки кодовых обозначений и их частей.

В дополнении к «Шифру Госдепартамента 1899 г.» (англ. Blue Book – Синяя книга) были описаны еще 25 дополнительных правил перешифрования: изменение направления чтения и записи, прибавление или вычитание чисел, замена кодовых чисел другими кодовыми числами.

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *