В чем заключается кодирование информации
Кодирование для чайников, ч.1
Не являясь специалистом в обозначенной области я, тем не менее, прочитал много специализированной литературы для знакомства с предметом и прорываясь через тернии к звёздам набил, на начальных этапах, немало шишек. При всём изобилии информации мне не удалось найти простые статьи о кодировании как таковом, вне рамок специальной литературы (так сказать без формул и с картинками).
Статья, в первой части, является ликбезом по кодированию как таковому с примерами манипуляций с битовыми кодами, а во второй я бы хотел затронуть простейшие способы кодирования изображений.
0. Начало
Давайте рассмотрим некоторые более подробно.
1.1 Речь, мимика, жесты
1.2 Чередующиеся сигналы
В примитивном виде кодирование чередующимися сигналами используется человечеством очень давно. В предыдущем разделе мы сказали про дым и огонь. Если между наблюдателем и источником огня ставить и убирать препятствие, то наблюдателю будет казаться, что он видит чередующиеся сигналы «включено/выключено». Меняя частоту таких включений мы можем выработать последовательность кодов, которая будет однозначно трактоваться принимающей стороной.
1.3 Контекст
2. Кодирование текста
Текст в компьютере является частью 256 символов, для каждого отводится один байт и в качестве кода могут быть использованы значения от 0 до 255. Так как данные в ПК представлены в двоичной системе счисления, то один байт (в значении ноль) равен записи 00000000, а 255 как 11111111. Чтение такого представления числа происходит справа налево, то есть один будет записано как 00000001.
Итак, символов английского алфавита 26 для верхнего и 26 для нижнего регистра, 10 цифр. Так же есть знаки препинания и другие символы, но для экспериментов мы будем использовать только прописные буквы (верхний регистр) и пробел.
Тестовая фраза «ЕХАЛ ГРЕКА ЧЕРЕЗ РЕКУ ВИДИТ ГРЕКА В РЕЧКЕ РАК СУНУЛ ГРЕКА РУКУ В РЕКУ РАК ЗА РУКУ ГРЕКУ ЦАП».
2.1 Блочное кодирование
Информация в ПК уже представлена в виде блоков по 8 бит, но мы, зная контекст, попробуем представить её в виде блоков меньшего размера. Для этого нам нужно собрать информацию о представленных символах и, на будущее, сразу подсчитаем частоту использования каждого символа:
Информатика
Именная карта банка для детей
с крутым дизайном, +200 бонусов
Закажи свою собственную карту банка и получи бонусы
План урока:
Примеры кодирования информации:
Другими словами, переход сообщения из одной формы ее в другую, согласно определенным правилам, и выражает в чем суть кодирования информации.
Информация проходит кодирование в целях:
История кодирования информации насчитывает сотни веков. Издавна люди использовали криптограммы (зашифрованные сообщения).
В 19 веке с изобретением телеграфа С. Морзе был придуман и принципиально новый способ шифрования. Телеграфное сообщение передавалось по проводам последовательностью коротких и долгих сигналов (точка и тире).
Вслед за ним Ж. Бодо создал основополагающий в истории современной информатики метод бинарного кодирования информации, который заключается в применении всего двух различающихся электрических сигналов. Кодирование информации в компьютере также подразумевает использование двух чисел.
Разработанная в 1948г. К. Шенноном «Теория информации и кодирования» стала основополагающей в современном кодировании данных.
Кодирование информации в информатике, одна из базовых тем. Понимание для чего нужна процедура кодирования передаваемой информации, каким образом она осуществляется, поможет в изучении принципов работы компьютера.
Способы кодировки
Проанализируем разнообразные виды информации и особенности ее кодирования.
По принципу представления все информационные сведения можно классифицировать на следующие группы:
Способы кодирования информации обусловлены поставленными целями, а также имеющимися возможностями,методами ее дальнейшей обработки и сохранения. Одинаковые сообщения могут отображаться в виде картинок и условных знаков (графический способ), чисел (числовой способ) или символов (символьный способ).
Соответственно происходит и классификация информации по способу кодирования:
Чтобы расшифровать сообщение, отображаемое в выбранной системе кодирования информации, необходимо осуществить декодирование – процесс восстановления до исходного материала. Для успешного осуществления расшифровки необходимо знать вид кода и методы шифрования.
Самыми распространенными видами кодировок информации являются следующие:
Различают такие методы кодирования информации как:
Двоичный код
Самый широко используемый метод кодирования информации – двоичное кодирование. Кодирование данных двоичным кодом применяется во всех современных технологиях.
Двоичное кодирование информации применяется для различных данных:
Обработка графических изображений
Кодирование текстовой, звуковой и графической информации осуществляется в целях ее качественного обмена, редактирования и хранения. Кодировка информационных сообщений различного типа обладает своими отличительными чертами, но, в целом, она сводится к преобразованию их в двоичном виде.
Рисунки, иллюстрации в книгах, схемы, чертежи и т.п. – примеры графических сообщений. Современные люди для работы с графическими данными все чаще применяют компьютерные технологии.
Суть кодирования графической и звуковой информации заключается в преобразовании ее из аналогового вида в цифровой.
Кодирование графической информации – это процедура присвоения каждому компоненту изображения определенного кодового значения.
Способы кодирования графической информации подчиняются методам представления изображений (растрового или векторного):
Источник
Многим станет интересно: «В чем суть кодирования графической информации, представленной в виде 3D-изображений?» Дело в том, что работа с трехмерными данными сочетает способы растровой и векторной кодировки.
Кодирование и обработка графической информации различного формата имеет как свои преимущества, так и недостатки.
Метод координат
Любые данные можно передать с помощью двоичных чисел, в том числе и графические изображение, представляющие собой совокупность точек. Чтобы установить соответствие чисел и точек в бинарном коде, используют метод координат.
Метод координат на плоскости основан на изучении свойств точки в системе координат с горизонтальной осью Ox и вертикальной осью Oy. Точка будет иметь 2 координаты.
Если через начало координат проходит 3 взаимно перпендикулярные оси X, Y и Z, то используется метод координат в пространстве. Положение точки в таком случае определяется тремя координатами.
Система координат в пространстве
Перевод чисел в бинарный код
Числовой способ кодирования информации, т.е. переход информационных данных в бинарную последовательность чисел широко распространен в современной компьютерной технике. Любая числовую, символьную, графическую, аудио- и видеоинформацию можно закодировать двоичными числами. Рассмотрим подробнее кодирование числовой информации.
Привычная человеку система счисления (основанная на цифрах от 0 до 9), которой мы активно пользуемся, появилась несколько сотен тысяч лет назад. Работа всей вычислительной техники организована на бинарной системе счисления. Алфавитом у нее минимальный – 0 и 1. Кодировка чисел совершается путем перехода из десятичной в двоичную систему счисления и выполнении вычислений непосредственно с бинарными числами.
Кодирование и обработка числовой информации обусловлено желаемым результатом работы с цифрами. Так, если число вводится в рамках текстового файла, то оно будет иметь код символа, взятого из используемого стандарта. Для математических вычислений числовые данные преобразуются совершенно другим способом.
Принципы кодирования числовой информации, представленной в виде целых или дробных чисел (положительных, отрицательных или равных 0) отличаются по своей сути. Самый простой способ перевести целое число из десятичной в двоичную систему счисления заключается в следующем:
Одна из важнейших частей компьютерной работы – кодирование символьной информации. Все многообразие цифр, русских и латинских букв, знаков препинания, математических знаков и отдельных специальных обозначений относятся к символам. Cимвольный способ кодирования состоит в присвоении определенному знаку установленного шифра.
Рассмотрим подробнее самые распространенные стандарты ASCII и Unicode – то, что применяется для кодирования символьной информации во всем мире.
Фрагмент таблицы ASCII
Первоначально было установлено, что для любого знака отводится в памяти компьютера 8 бит (1 бит – это либо «0», либо «1») бинарной последовательности. Первая таблица кодировки ASCII (переводится как «американский кодовый стандарт обмена сообщениями») содержала 256 символов. Ограниченная численность закодированных знаков, затрудняющая межнациональный обмен данными, привела к необходимости создания стандарта Unicode, основанного на ASCII. Эта международная система кодировки содержит 65536 символов. Закодировать огромное количество всевозможных обозначений стало возможным благодаря использованию 16-битного символьного кодирования.
Кодирование символьной и числовой информации принципиально отличается. Для ввода-вывода цифр на монитор или использовании их в текстовом файле происходит преобразование их согласно системе кодировки. В процессе арифметических действий число имеет совершенно другое бинарное значение, потому что оно переходит в двоичную систему счисления, где и совершаются все вычислительные действия.
Выбирать способ кодирования информации – графический, числовой или символьный необходимо отталкиваясь от цели кодировки. Например, число «21» можно ввести в компьютерную память цифрами или буквами «двадцать один», слово «ЗИМА» можно передать русскими буквами «зима» или латинскими «ZIMA», штрих-код товара передается изображением и цифрами.
Преобразование звука
Компьютерные технологии успешно внедряются в различные сферы деятельности, включая кодирование и обработку звуковой информации. С физической точки зрения, звук – это аналоговый сплошной сигнал. Процесс его перевода в ряд электрических импульсов называется кодированием звуковой информации.
Задачи, которые необходимо решить для успешной оцифровки сигнала:
Преобразование звука: а) аналоговый сигнал; б)дискретный сигнал.
Различают следующие методы кодирования звуковой информации:
Обработка текста
Текст – осмысленный порядок знаков. С использованием компьютера кодирование и обработка текстовой информации (набор, редактирование, обмен и сохранение письменного текста) значительно упростилось.
Кодирование текстовой информации – присвоение любому символу текста кода из кодировочной системы. Различают следующие стандарты кодировки:
В задачах на кодирование текстовой информации часто встречаются следующие понятия:
Например, мощность алфавита ASCII составляет 256 символов. При этом один знак занимает 8 бит (или 1 байт) памяти, а Unicode – 35536 символов и 16 бит (или 2 байта) соответственно.
В чем заключается кодирование информации
Представление информации происходит в различных формах в процессе восприятия окружающей среды живыми организмами и человеком, в процессах обмена информацией между человеком и человеком, человеком и компьютером, компьютером и компьютером и так далее. Информация, поступает в виде условных знаков или сигналов самой разной физической природы.
Это свет, звук, запах, касания; это слова, значки, символы, жесты и движения.
Для того чтобы произошла передача информации, мы должны не только принять сигнал от кого-то, но и расшифровать его.
Так, услышав звонок будильника, человек понимает, что пришло время просыпаться;
телефонный звонок — кому-то нужно с нами поговорить;
школьный звонок сообщает учащимся о долгожданной перемене.
Для правильного понятия разных сигналов требуется разработка кода или кодирование.
Код — это система условных знаков для представления информации.
Кодирование — это перевод информации в удобную для передачи, обработки или хранения форму с помощью некоторого кода.
Средством кодирования служит таблица соответствия знаковых систем, которая устанавливает взаимно однозначное соответствие между знаками или группами знаков двух различных знаковых систем.
Обратное преобразование называется декодированием.
Декодирование — это процесс восстановления содержания закодированной информации.
Можно рассмотреть в качестве примера кодирования соответствие цифрового и штрихового кодов товара. Такие коды имеются на каждом товаре и позволяют полностью идентифицировать товар (страну и фирму производителя, тип товара и др.).
Существует три основных способа кодирования информации:
●Числовой способ — с помощью чисел.
●Символьный способ — информация кодируется с помощью символов того же алфавита, что и исходящий текст.
●Графический способ — информация кодируется с помощью рисунков или значков.
Существует равномерное и неравномерное кодирование. При равномерном кодировании сообщение декодируется однозначно. При неравномерном кодировании для однозначного декодирования сообщения нужно, чтобы выполнялось прямое и обратное условие Фано(прямое: никакой код не должен быть началом другого кода, обратное: никакой код не должен быть концом другого кода)
Понимать, что мы можем закодировать сообщение, даже если условие Фано не выполняется, но возможно не сможем его однозначно декодировать.
Однозначно декодировать –получить один единственный точный вариант.
Двоичное кодирование информации в компьютере.
В компьютере для представления информации используется двоичное кодирование, так как удалось создать надежно работающие технические устройства, которые могут со стопроцентной надежностью сохранять и распознавать не более двух различных состояний (цифр):
· электромагнитные реле (замкнуто/разомкнуто), широко использовались в конструкциях первых ЭВМ;
· участок поверхности магнитного носителя информации (намагничен/размагничен);
· участок поверхности лазерного диска (отражает/не отражает);
· триггер, может устойчиво находиться в одном из двух состояний, широко используется в оперативной памяти компьютера.
Кодирование текстовой информации.
Текстовую информацию кодируют двоичным кодом через обозначение каждого символа алфавита определенным целым числом. С помощью восьми двоичных разрядов возможно закодировать 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].
Русская буква | Латинская буква | Код Морзе | Русская буква | Латинская буква | Код Морзе | Символ | Код Морзе |
A | A | · — | Р | R | · — · | 1 | · — — — — |
Б | B | — · · · | С | S | · · · | 2 | · · — — — |
В | W | · — — | Т | T | — | 3 | · · · — — |
Г | 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].
Управляющие символы | ||||
Двоичный код | Десятичный код | Назначение | ||
01000 | 8 | Возврат каретки | ||
00010 | 2 | Перевод строки | ||
11111 | 31 | Буквы латинские | ||
11011 | 27 | Цифры | ||
00100 | 4 | Пробел | ||
00000 | 0 | Буквы русские | ||
Буквы, цифры и остальные символы | ||||
Двоичный код | Десятичный код | Латинская буква | Русская буква | Цифры и прочие символы |
00011 | 3 | A | А | — |
11001 | 25 | B | Б | ? |
01110 | 14 | C | Ц | : |
01001 | 9 | D | Д | Кто там? |
00001 | 1 | E | Е | З |
01101 | 13 | F | Ф | Э |
11010 | 26 | G | Г | Ш |
10100 | 20 | H | Х | Щ |
00110 | 6 | I | И | 8 |
01011 | 11 | J | Й | Ю |
01111 | 15 | K | К | ( |
10010 | 18 | L | Л | ) |
11100 | 28 | M | М | . |
01100 | 12 | N | Н | , |
11000 | 24 | O | О | 9 |
10110 | 22 | P | П | 0 |
10111 | 23 | Q | Я | 1 |
01010 | 10 | R | Р | 4 |
00101 | 5 | S | С | ‘ |
10000 | 16 | T | Т | 5 |
00111 | 7 | U | У | 7 |
11110 | 30 | V | Ж | = |
10011 | 19 | W | В | 2 |
11101 | 29 | X | Ь | / |
10101 | 21 | Y | Ы | 6 |
10001 | 17 | Z | З | + |
Рис.22.2. Стандарт кода Бодо МТК-2
На следующем рисунке показана телетайпная перфолента с сообщением, переданным с помощью кода Бодо.
Рис. 22.3. Перфолента с кодом Бодо
Следует отметить два интересных факта, связанных с кодом Бодо.
1. Сотрудники телеграфной компании AT&T Гильберто Вернам и Мейджор Джозеф Моборн в 1917 г. предложили идею автоматического шифрования телеграфных сообщений на основе кода Бодо. Шифрование выполнялось методом гаммирования по модулю 2.
2. Соответствие между английским и русским алфавитами, принятое в МТК-2, было использовано при создании компьютерных кодировок КОИ-7 и КОИ-8.
Кодировка ASCII | Дополнительные символы | ||||||||||
Двоичный код | Десятичный код | Символ | Двоичный код | Десятичный код | Символ | Двоичный код | Десятичный код | Символ | Двоичный код | Десятичный код | Символ |
00000000 | 0 | NUL | 01000000 | 64 | @ | 10000000 | 128 | Ђ | 11000000 | 192 | А |
00000001 | 1 | SOH | 01000001 | 65 | A | 10000001 | 129 | Ѓ | 11000001 | 193 | Б |
00000010 | 2 | STX | 01000010 | 66 | B | 10000010 | 130 | ‚ | 11000010 | 194 | В |
00000011 | 3 | ETX | 01000011 | 67 | C | 10000011 | 131 | ѓ | 11000011 | 195 | Г |
00000100 | 4 | EOT | 01000100 | 68 | D | 10000100 | 132 | „ | 11000100 | 196 | Д |
00000101 | 5 | ENQ | 01000101 | 69 | E | 10000101 | 133 | … | 11000101 | 197 | Е |
00000110 | 6 | ACK | 01000110 | 70 | F | 10000110 | 134 | † | 11000110 | 198 | Ж |
00000111 | 7 | BEL | 01000111 | 71 | G | 10000111 | 135 | ‡ | 11000111 | 199 | З |
00001000 | 8 | BS | 01001000 | 72 | H | 10001000 | 136 | € | 11001000 | 200 | И |
00001001 | 9 | HT | 01001001 | 73 | I | 10001001 | 137 | ‰ | 11001001 | 201 | Й |
00001010 | 10 | LF | 01001010 | 74 | J | 10001010 | 138 | Љ | 11001010 | 202 | К |
00001011 | 11 | VT | 01001011 | 75 | K | 10001011 | 139 | ‹ | 11001011 | 203 | Л |
00001100 | 12 | FF | 01001100 | 76 | L | 10001100 | 140 | Њ | 11001100 | 204 | М |
00001101 | 13 | CR | 01001101 | 77 | M | 10001101 | 141 | Ќ | 11001101 | 205 | Н |
00001110 | 14 | SO | 01001110 | 78 | N | 10001110 | 142 | Ћ | 11001110 | 206 | О |
00001111 | 15 | SI | 01001111 | 79 | O | 10001111 | 143 | Џ | 11001111 | 207 | П |
00010000 | 16 | DLE | 01010000 | 80 | P | 10010000 | 144 | ђ | 11010000 | 208 | Р |
00010001 | 17 | DC1 | 01010001 | 81 | Q | 10010001 | 145 | ‘ | 11010001 | 209 | С |
00010010 | 18 | DC2 | 01010010 | 82 | R | 10010010 | 146 | ’ | 11010010 | 210 | Т |
00010011 | 19 | DC3 | 01010011 | 83 | S | 10010011 | 147 | “ | 11010011 | 211 | У |
00010100 | 20 | DC4 | 01010100 | 84 | T | 10010100 | 148 | ” | 11010100 | 212 | Ф |
00010101 | 21 | NAK | 01010101 | 85 | U | 10010101 | 149 | • | 11010101 | 213 | Х |
00010110 | 22 | SYN | 01010110 | 86 | V | 10010110 | 150 | – | 11010110 | 214 | Ц |
00010111 | 23 | ETB | 01010111 | 87 | W | 10010111 | 151 | — | 11010111 | 215 | Ч |
00011000 | 24 | CAN | 01011000 | 88 | X | 10011000 | 152 | 11011000 | 216 | Ш | |
00011001 | 25 | EM | 01011001 | 89 | Y | 10011001 | 153 | ™ | 11011001 | 217 | Щ |
00011010 | 26 | SUB | 01011010 | 90 | Z | 10011010 | 154 | љ | 11011010 | 218 | Ъ |
00011011 | 27 | ESC | 01011011 | 91 | [ | 10011011 | 155 | › | 11011011 | 219 | Ы |
00011100 | 28 | FS | 01011100 | 92 | \ | 10011100 | 156 | њ | 11011100 | 220 | Ь |
00011101 | 29 | GS | 01011101 | 93 | ] | 10011101 | 157 | ќ | 11011101 | 221 | Э |
00011110 | 30 | RS | 01011110 | 94 | ^ | 10011110 | 158 | ћ | 11011110 | 222 | Ю |
00011111 | 31 | US | 01011111 | 95 | _ | 10011111 | 159 | џ | 11011111 | 223 | Я |
00100000 | 32 | 01100000 | 96 | ` | 10100000 | 160 | 11100000 | 224 | а | ||
00100001 | 33 | ! | 01100001 | 97 | a | 10100001 | 161 | Ў | 11100001 | 225 | б |
00100010 | 34 | « | 01100010 | 98 | b | 10100010 | 162 | ў | 11100010 | 226 | в |
00100011 | 35 | # | 01100011 | 99 | c | 10100011 | 163 | Ј | 11100011 | 227 | г |
00100100 | 36 | $ | 01100100 | 100 | d | 10100100 | 164 | ¤ | 11100100 | 228 | д |
00100101 | 37 | % | 01100101 | 101 | e | 10100101 | 165 | Ґ | 11100101 | 229 | е |
00100110 | 38 | & | 01100110 | 102 | f | 10100110 | 166 | ¦ | 11100110 | 230 | ж |
00100111 | 39 | ‘ | 01100111 | 103 | g | 10100111 | 167 | § | 11100111 | 231 | з |
00101000 | 40 | ( | 01101000 | 104 | h | 10101000 | 168 | Ё | 11101000 | 232 | и |
00101001 | 41 | ) | 01101001 | 105 | i | 10101001 | 169 | © | 11101001 | 233 | й |
00101010 | 42 | * | 01101010 | 106 | j | 10101010 | 170 | Є | 11101010 | 234 | к |
00101011 | 43 | + | 01101011 | 107 | k | 10101011 | 171 | « | 11101011 | 235 | л |
00101100 | 44 | , | 01101100 | 108 | l | 10101100 | 172 | ¬ | 11101100 | 236 | м |
00101101 | 45 | — | 01101101 | 109 | m | 10101101 | 173 | ¬ | 11101101 | 237 | н |
00101110 | 46 | . | 01101110 | 110 | n | 10101110 | 174 | ® | 11101110 | 238 | о |
00101111 | 47 | / | 01101111 | 111 | o | 10101111 | 175 | Ї | 11101111 | 239 | п |
00110000 | 48 | 0 | 01110000 | 112 | p | 10110000 | 176 | ° | 11110000 | 240 | р |
00110001 | 49 | 1 | 01110001 | 113 | q | 10110001 | 177 | ± | 11110001 | 241 | с |
00110010 | 50 | 2 | 01110010 | 114 | r | 10110010 | 178 | І | 11110010 | 242 | т |
00110011 | 51 | 3 | 01110011 | 115 | s | 10110011 | 179 | і | 11110011 | 243 | у |
00110100 | 52 | 4 | 01110100 | 116 | t | 10110100 | 180 | ґ | 11110100 | 244 | ф |
00110101 | 53 | 5 | 01110101 | 117 | u | 10110101 | 181 | µ | 11110101 | 245 | х |
00110110 | 54 | 6 | 01110110 | 118 | v | 10110110 | 182 | ¶ | 11110110 | 246 | ц |
00110111 | 55 | 7 | 01110111 | 119 | w | 10110111 | 183 | · | 11110111 | 247 | ч |
00111000 | 56 | 8 | 01111000 | 120 | x | 10111000 | 184 | ё | 11111000 | 248 | ш |
00111001 | 57 | 9 | 01111001 | 121 | y | 10111001 | 185 | № | 11111001 | 249 | щ |
00111010 | 58 | : | 01111010 | 122 | z | 10111010 | 186 | є | 11111010 | 250 | ъ |
00111011 | 59 | ; | 01111011 | 123 | < | 10111011 | 187 | » | 11111011 | 251 | ы |
00111100 | 60 | 01111110 | 126 | 10111110 | 190 | ѕ | 11111110 | 254 | ю | ||
00111111 | 63 | ? | 01111111 | 127 | DEL | 10111111 | 191 | ї | 11111111 | 255 | я |
Рис. 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 – Y | 5 – 5 | 6 – 5 | 5 – 6 | 5 – (-6) |
X2 | 00000101 | 00000110 | 00000101 | 00000101 |
Y2 | 00000101 | 00000101 | 00000110 | 11111001 |
Замена сложением | 5 + (-5) | 6 + (-5) | 5 + (-6) | 5 + 6 |
Обратный код для вычитаемого (-Y2) | 11111010 | 11111010 | 11111001 | 00000110 |
Сложение | 00000101 + 11111010 11111111 | 00000110 + 11111010 100000000 | 00000101 + 11111001 11111110 | 00000101 + 00000110 00001011 |
Отбрасывание старшего разряда и добавление 12 | не требуется | 00000000 + 00000001 00000001 | не требуется | не требуется |
Результат | -0 | 1 | -1 | 11 |
Несмотря на то, что обратный код значительно упрощает вычислительные процедуры, а соответственно и быстродействие компьютеров, наличие двух «нулей» и другие условности привели к появлению дополнительного кода. При представлении отрицательного числа его модуль вначале инвертируется, как в обратном коде, а затем к инверсии сразу добавляется 12.
В следующей таблице приведены некоторые числа в различном кодовом представлении.
Таблица 22.3. Представление чисел в различных кодах
Десятичное представление | Код двоичного представления (8 бит) | ||
прямой | обратный | дополнительный | |
127 | 01111111 | 01111111 | 01111111 |
6 | 00000110 | 00000110 | 00000110 |
5 | 00000101 | 00000101 | 00000101 |
1 | 00000001 | 00000001 | 00000001 |
0 | 00000000 | 00000000 | 00000000 |
-0 | 10000000 | 11111111 | — |
-1 | 10000001 | 11111110 | 11111111 |
-5 | 10000101 | 11111010 | 11111011 |
-6 | 10000110 | 11111001 | 11111010 |
-127 | 11111111 | 10000000 | 10000001 |
-128 | — | — | 10000000 |
Таблица 22.4. Примеры вычитания двух чисел с использованием дополнительного кода
X – Y | 5 – 5 | 6 – 5 | 5 – 6 | 5 – (-6) |
X2 | 00000101 | 00000110 | 00000101 | 00000101 |
Y2 | 00000101 | 00000101 | 00000110 | 11111010 |
Замена сложением | 5 + (-5) | 6 + (-5) | 5 + (-6) | 5 + 6 |
Дополнительный код для вычитаемого (-Y2) | 11111011 | 11111011 | 11111010 | 00000110 |
Сложение | 00000101 + 11111011 00000000 | 00000110 + 11111011 100000001 | 00000101 + 11111010 11111111 | 00000101 + 00000110 00001011 |
Отбрасывание старшего разряда и добавление 12 | не требуется | 00000001 | не требуется | не требуется |
Результат | -0 | 1 | -1 | 11 |
Можно возразить, что представление чисел в дополнительных кодах требует на одну операцию больше (после инверсии всегда требуется сложение с 12), что может и не потребоваться в дальнейшем, как в примерах с обратными кодами. В данном случае срабатывает известный «принцип чайника». Лучше сделать процедуру линейной, чем применять в ней правила «Если A то B» (даже если оно одно). То, что с человеческой точки зрения кажется увеличением трудозатрат (вычислительной и временной сложности), с точки зрения программно-технической реализации может оказаться эффективней.
2. Формат с плавающей запятой, в основном, используется для вещественных чисел. Число в данном формате представляется в экспоненциальном виде
Так как числа хранится и обрабатывается в компьютерах в двоичном виде, то для этих целей принимается e = 2. Одной из возможных форм двоичного представления чисел с плавающей запятой является следующая.
bn± | bn7 | bn6 | bn5 | bn4 | bn3 | bn2 | bn1 | bm± | bm15 | bm14 | bm13 | bm12 | bm11 | bm10 | bm9 | bm8 | bm7 | bm6 | bm5 | bm4 | bm3 | bm2 | bm1 |
знак | величина | знак | величина | ||||||||||||||||||||
порядок | мантисса |
Рис. 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 в формате с плавающей запятой с учетом представления мантиссы в нормализованной записи
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
знак + | величина 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 дополнительных правил перешифрования: изменение направления чтения и записи, прибавление или вычитание чисел, замена кодовых чисел другими кодовыми числами.
Разработчики кодов, чтобы закодировать сообщение, могут не только создавать с самого начала новые коды, но и воспользоваться уже имеющимися текстами. Т.н. книжные коды по своей сути аналогичны книжному шифру. В отличие от них замене подлежит не буква, а все слово целиком. Таким образом, кодовая замена представляет собой тройку чисел «страница.строка.слово». В книжных шифрах, как и в кодовых системах, рассмотренных выше, нашли широкое применение различные способы перешифровки. В частности, аддитивные числа, перестановки цифр и повторные замены.
Несомненным преимуществом книжного кода является то, что исключается необходимость использовать вызывающие подозрение кодовые книги — обнаружение таковой может привести к провалу агента. В то же время саму книгу можно потерять или ее могут украсть, в результате чего окажется скомпрометированной вся система.