Коды в информатике: Код — Википедия – Кодирование текстовой информации — Кодирование информации

Код — Википедия

Материал из Википедии — свободной энциклопедии

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 15 июля 2019; проверки требует 1 правка. Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 15 июля 2019; проверки требует 1 правка.

Код — взаимно однозначное отображение конечного упорядоченного множества символов, принадлежащих некоторому конечному алфавиту, на иное, не обязательно упорядоченное, как правило более обширное множество символов для кодирования передачи, хранения или преобразования информации[источник не указан 1204 дня].

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

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

Процесс преобразования сообщения в комбинацию символов в соответствии с кодом называется кодированием, процесс восстановления сообщения из комбинации символов называется декодированием.

Для наглядного описания кодов используются кодовые деревья. Если на каждом его уровне содержится m2l{\displaystyle m_{2}^{l}} узлов, где l — номер уровня (корень дерева находится на нулевом уровне), оно называется полным. Очевидно, величина m2lmax{\displaystyle m_{2}^{l_{max}}}, называемая объёмом дерева, характеризует максимальное число кодовых комбинаций, которое можно построить при помощи данного дерева.

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

Префиксным называется код, не имеющий ни одного кодового слова, которое было бы префиксом (началом) любого другого кодового слова данного кода. Любой префиксный код является разделимым (то есть любую последовательность кодовых слов всегда можно однозначно разделить на отдельные из них)[1]. Примерами префиксных кодов являются коды Шеннона, Шеннона-Фано и Хаффмана.

Равномерное кодирование: для алфавита с m1 символами используются кодовые слова с длиной n=up(logm2m1){\displaystyle n=up(log_{m_{2}}m_{1})}, где up — округление до большего целого. В этом случае неиспользованными остаются logm2m1−n{\displaystyle log_{m_{2}}m_{1}-n} кодовых слов, а остальным проставляются в соответствие символы первичного алфавита. Код Бодо имеет фиксированную длину 5 символов.

Префиксные коды: Код Шеннона-Фано — первый алгоритм неравномерного кодирования. Код Хаффмана — известный метод построения оптимального неравномерного кода (ОНК) с использованием деревьев. Арифметическое кодирование — обобщение кода Хаффмана.

  • Цымбал В. П. Теория информации и кодирование. — Киев: Выща Школа, 1977. — 288 с.

Двоичный код — Википедия

Материал из Википедии — свободной энциклопедии

Слово «Wikipedia», закодированное двоичным ASCII-кодом.

Двои́чный код — это способ представления данных в виде кода, в котором каждый разряд принимает одно из двух возможных значений, обычно обозначаемых цифрами 0 и 1. Разряд в этом случае называется двоичным разрядом.

В случае обозначения цифрами «0» и «1», возможные состояния двоичного разряда наделяются качественным соотношением «1» > «0» и количественными значениями чисел «0» и «1».

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

Из комбинаторики известно, что, в случае непозиционного кода, количество комбинаций (кодов) n-разрядного кода является числом сочетаний с повторениями, равно биномиальному коэффициенту:

(n+k−1k)=(−1)k(−nk)=(n+k−1)!k!(n−1)!{\displaystyle {n+k-1 \choose k}=(-1)^{k}{-n \choose k}={\frac {\left(n+k-1\right)!}{k!\left(n-1\right)!}}}, [возможных состояний (кодов)], где:

n{\displaystyle n} — количество элементов в данном множестве различных элементов (количество возможных состояний, цифр, кодов в разряде),
k{\displaystyle k} — количество элементов в наборе (количество разрядов).
В двоичной системе кодирования (n=2) количество возможных состояний (кодов) равно :

(n+k−1)!k!(n−1)!=(2+k−1)!k!(2−1)!=(k+1)!k!1!=k+1{\displaystyle {\frac {\left(n+k-1\right)!}{k!\left(n-1\right)!}}={\frac {\left(2+k-1\right)!}{k!\left(2-1\right)!}}={\frac {\left(k+1\right)!}{k!1!}}=k+1}, [возможных состояний (кодов)], то есть

описывается линейной функцией:

Nkp(k)=k+1{\displaystyle N_{kp}(k)=k+1}, [возможных состояний (кодов)], где

k{\displaystyle k} — количество двоичных разрядов.
Например, в одном 8-битном байте (k=8) количество возможных состояний (кодов) равно:

Nkp(k)=k+1=8+1=9{\displaystyle N_{kp}(k)=k+1=8+1=9}, [возможных состояний (кодов)].

В случае позиционного кода, число комбинаций (кодов) k-разрядного двоичного кода равно числу размещений с повторениями:

Np(k)=A¯(2,k)=A¯2k=2k{\displaystyle N_{p}(k)={\bar {A}}(2,k)={\bar {A}}_{2}^{k}=2^{k}}, где

 k{\displaystyle \ k} — число разрядов двоичного кода.

Используя два двоичных разряда можно закодировать четыре различные комбинации: 00 01 10 11, три двоичных разряда — восемь: 000 001 010 011 100 101 110 111, и так далее.
При увеличении разрядности позиционного двоичного кода на 1, количество различных комбинаций в позиционном двоичном коде удваивается.

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

В системах счисления k-разрядный двоичный код, (k-1)-разрядный двоичный код, (k-2)-разрядный двоичный код и т. д. могут отображать одно и то же число. Например, 0001, 001, 01, 1 — одно и то же число — «1» в двоичных кодах с разным числом разрядов — k.

В таблице показаны первые 16 двоичных чисел и их соответствие десятичным и шестнадцатиричным числам.

Десятичное числоШестнадцатеричное числоДвоичное число
000000
110001
220010
330011
440100
550101
660110
770111
881000
991001
10A1010
11B1011
12C1100
13D1101
14E1110
15F1111

Пример «доисторического» использования кодов[править | править код]

Инки имели свою счётную систему кипу, которая физически представляла собой верёвочные сплетения и узелки. Генри Эртан обнаружил, что в узелках заложен некий код, более всего похожий на двоичную систему счисления[1].

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

Люди часто пользуются кодированием информации. Например для сохранение секретности военные общаясь по рации пользуются военными кодами.

Технологическая карта урока. Босова. Информатика. 5 класс. ФГОС.
Урок 8. В мире кодов. Способы кодирования информации.

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

Например китайские и японские иероглифы являются символами которыми кодируется буква или слово.

кодирование информации иероглифыкодирование информации иероглифы

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

кодирование информации руныкодирование информации руны

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

А как кодировались цифры в древнем Риме? В то время люди не знали букв и не умели писать они кодировали числа с помощью палочек.

кодирование информации римские цифрыкодирование информации римские цифры

Кстати один из первых известных методов шифрования носит имя римского императора Юлия Цезаря.

кодирование информации Юлий Цезарькодирование информации Юлий Цезарь

Этот метод основан на замене каждой буквы зашифрованного текста на другую путем смещения в алфавите от исходной буквы на фиксированное количество символов. Причем алфавит читается по кругу. После буквы «Я» рассматривается «А».

кодирование информации шифр цезарякодирование информации шифр цезаря

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

кодирование информации шифр цезаря дисккодирование информации шифр цезаря диск

Известный английский писатель Джон Толкиен.

кодирование информации Джон Толкиенкодирование информации Джон Толкиен

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

кодирование информации Джон Толкиен алфавиткодирование информации Джон Толкиен алфавит

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

кодирование информации Сэмюель Морзекодирование информации Сэмюель Морзе

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

кодирование информации Азбука Морзекодирование информации Азбука Морзе

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

Телеграф и радиотелеграф первоначально использовали азбуку Морзе позже стали применять код Бодо.

кодирование информации код Бодокодирование информации код Бодо

и ASCII

кодирование информации кодировка ASCIIкодирование информации кодировка ASCII

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

Еще один способ кодирования информации — ребус.

кодирование информации ребускодирование информации ребус

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

Что бы передать информацию её необходимо закодировать согласно природе канала передачи.

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

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

Кодирование — это преобразование информации без изменения её содержания в другой вид с помощью определенного кода.

Код — это набор правил преобразования для кодирования.

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

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

Бит — наименьшая единица двоичного кода.

Байт — последовательность из 8 бит.

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

ASCII — представляет собой стандартную таблицу кодировки знаков.

Измерения объемов информации

Информация отображается символами — байтами. Её объем измеряется количеством байт в сообщении. например текст «Даниил играет в футбол» = 22 бай

2. История технических способов кодирования информации

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

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

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

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

Morse-Samuel.jpg

Сэмюэль Финли Бриз Морзе

(1791-1872), США

Такой способ кодирования получил название азбуки Морзе. В ней каждая буква алфавита кодируется последовательностью коротких сигналов (точек) и длинных сигналов (тире). Буквы отделяются друг от друга паузами — отсутствием сигналов. В кодовой таблице ниже показана азбука Морзе применительно к русскому алфавиту. Специальных знаков препинания в ней нет. Их обычно записывают словами: «тчк» — точка, «зпт» — запятая и т. п.

 

azbuka_Morze.png

Кодовая таблица — это соответствие между набором знаков (символов) и их кодами.

Самым знаменитым телеграфным сообщением является сигнал бедствия «SOS» (Save Our Souls — спасите наши души).

Вот как он выглядит в коде азбуки Морзе:  sos.png
Три точки обозначают букву S, три тире — букву О. Две паузы отделяют буквы друг от друга.

apparat_Morze.jpg

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

 

Дополнительную видеоинформацию о Сэмюэле Морзе и его телеграфе можно посмотреть здесь: ссылка 1, ссылка 2, ссылка 3.

Характерной особенностью азбуки Морзе является переменная длина кода разных букв, поэтому код Морзе называют неравномерным кодом. Буквы, которые встречаются в тексте чаще, имеют более короткий код, чем редкие буквы. Например, код буквы «Е» — одна точка, а код буквы «Ъ» состоит из шести знаков. Зачем так сделано? Чтобы сократить длину всего сообщения. Но из-за переменной длины кода букв возникает проблема отделения букв друг от друга в тексте. Поэтому приходится для разделения использовать паузу (пропуск). Следовательно, телеграфный алфавит Морзе является троичным, так как в нём используется три знака: точка, тире, пропуск.

Азбука Морзе  — неравномерный телеграфный код, где каждая буква и знак представлены при помощи длинных и коротких сигналов, так называемых «тире» и «точек».

Равномерный телеграфный код был изобретен французом Жаном Морисом Бодо в конце \(XIX\) века. В нём использовалось всего два вида сигналов. Неважно, как их назвать: точка и тире, плюс и минус, ноль и единица. Это два отличающихся друг от друга электрических сигнала.
Bodo.jpg

Жан Морис Эмиль Бодо

(1845-1903), Франция

В коде Бодо длина кодов всех символов алфавита одинакова и равна пяти. В таком случае не возникает проблемы отделения букв друг от друга: каждая пятерка сигналов — это знак текста.

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

Код Бодо — равномерный телеграфный \(5\)-битный код, использующий два отличающихся друг от друга электрических сигнала.

 

kod_Bodo.png

apparat_Bodo.jpgapparat_Bodo2.png

В \(1872\) г. Жан Бодо конструирует телеграфный аппарат многократного действия, при помощи которого можно передавать по одной линии два и более сообщения.

Кроме своего аппарата, Бодо создает весьма удачный телеграфный код (Код Бодо), который впоследствии принимается повсеместно и получает звание Международного телеграфного кода № \(1\). Через два года изобретатель модернизирует свое изобретение и создает двукратный аппарат, который передаёт информацию со скоростью \(360\) знаков в минуту. Ещё через два года он создает уже пятикратный аппарат, скорость передачи в котором увеличивается по сравнению с первым уже в пять раз. Первые подобные аппараты вводятся в эксплуатацию в \(1877\) году на линии Париж – Бордо.

Аппарат Бодо становится самым значимым достижением техники передачи информации на расстоянии в ХIХ веке. В честь Бодо называют единицу скорости передачи информации — Бод.

 

Дополнительный видеоматериал о работе телеграфного аппарата Бодо можно посмотреть здесь.

 

Источники:

Семакин И. Г. Информатика и ИКТ. Базовый уровень: учебник для 10-11 классов / И. Г. Семакин, Е. К. Хеннер. — 8-е изд. — М. : БИНОМ. Лаборатория знаний, 2012, стр. 15-16

Теория кодирования — Википедия

Материал из Википедии — свободной энциклопедии

Теория коди́рования — наука о свойствах кодов и их пригодности для достижения поставленной цели.

Кодирование в рамках теории рассматривается как процесс преобразования данных из формы, удобной для непосредственного использования, в форму, удобную для передачи, хранения, автоматической обработки и сохранения от несанкционированного доступа. К основным проблемам теории относят вопросы взаимной однозначности кодирования и сложности реализации канала связи при заданных условиях[1]:86; в связи с этим выделяются следующие направления[2]:18:

  • сжатие данных — алгоритмическое преобразование данных, производимое с целью уменьшения занимаемого ими объёма, применяется для более рационального использования систем хранения и передачи данных, основная техника — устранение избыточности, содержащейся в исходных данных (например, повторения слов в тексте)[3];
  • криптография — преобразование данных для обеспечения конфиденциальности (невозможности прочтения информации посторонними), целостности данных (невозможности незаметного изменения информации), аутентификации (проверки подлинности авторства или иных свойств объекта), а также невозможности отказа от авторства
    [4]
    ;
  • физическое кодирование — способ представления данных в виде каких-либо сигналов, например, в виде дискретных уровней амплитуды напряжения, амплитуды тока, амплитуды яркости и так далее[5];
  • обнаружение и исправление ошибок — контроль целостности данных при записи и воспроизведении информации или при её передаче по линиям связи с обеспечением восстановления информации[6].
  1. Марков А. А. Введение в теорию кодирования. — М.: Наука, 1982. — 192 с.
  2. ↑ Types of Coding // James Irvine, David Harle Data Communications and Networks. John Wiley & Sons, 2002. pp. 268
  3. Сэломон Д. Сжатие данных, изображения и звука. — М.: Техносфера, 2004. — С. 368. — ISBN 5-94836-027-X. 3000 экз.
  4. Конхейм А. Г. Основы криптографии. М.: Радио и связь, 1987.
  5. Nidhal Abdulaziz, Eesa Bastaki Slope line coding for telecommunication networks // University of Wollongong Research Online, 2007.
  6. Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение / пер. с англ. В. Б. Афанасьева. — М.: Техносфера, 2006. — 320 с. — (Мир связи). — 2000 экз. — ISBN 5-94836-035-0.

Урок 8 — Информатика 7 класс

Читать!!!!!!

Кодирование

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

Кодирование заключается в том, что каждому символу ставится в соответствие уникальный десятичный код от 0 до 255 или соответствующий ему двоичный код от 00000000 до 11111111. Таким образом, человек различает символы по их начертанию, а компьютер — по их коду.

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

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

Понятно, что это дело условное, можно придумать множество способов кодировки.

Все символы компьютерного алфавита пронумерованы от 0 до 255. Каждому номеру соответствует восьмиразрядный двоичный код от 00000000 до 11111111. Этот код просто порядковый номер символа в двоичной системе счисления.

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

Для разных типов ЭВМ используются различные таблицы кодировки.

Международным стандартом для ПК стала таблица ASCII (читается аски) (Американский стандартный код для информационного обмена).

Код — это… Что такое Код?

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

Кодирование

Процесс преобразования сообщения в комбинацию символов в соответствии с кодом называется кодированием, процесс восстановления сообщения из комбинации символов называется декодированием.

Кодовые деревья

Для наглядного описания кодов используются кодовые деревья. Если число узлов на каждом его уровне содержит узлов, где l — номер уровня (корень дерева находится на нулевом уровне), оно называется полным. Очевидно, величина , называемая объёмом дерева, характеризует максимальное число кодовых комбинаций, которое можно построить при помощи данного дерева.

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

Префиксный код

Префиксным называется код, не имеющий ни одного кодового слова, которое было бы префиксом (началом) любого другого кодового слова данного кода. Любой префиксный код является разделимым (то есть любую последовательность кодовых слов всегда можно однозначно разделить на отдельные из них).[1] Примерами префиксных кодов являются коды Шеннона, Шеннона-Фано и Хаффмана.

Примеры

Равномерное кодирование: для алфавита с m1 символами используются кодовые слова с длиной , где up — округление до большего целого. В этом случае неиспользованными остаются кодовых слов, а остальным проставляются в соответствие символы первичного алфавита. Код Бодо имеет фиксированную длину 5 символов.

Префиксные коды: Код Шеннона-Фано — первый алгоритм неравномерного кодирования. Код Хаффмана — известный метод построения оптимального неравномерного кода (ОНК) с использованием деревьев. Арифметическое кодирование — обобщение кода Хаффмана.

Литература

  • Цымбал В. П. Теория информации и кодирование. — Киев: Выща Школа, 1977. — 288 с.

См. также

Примечания

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

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