Файл: Методы кодирования данных (Технологии программирования).pdf
Добавлен: 01.04.2023
Просмотров: 346
Скачиваний: 3
Введение
Кодирование – это представление сигнала в определенной форме, удобной или пригодной для последующего использования сигнала. Говоря строже, это правило, описывающее отображение одного набора знаков в другой набор знаков. Тогда отображаемый набор знаков называется исходным алфавитом, а набор знаков, который используется для отображения, – кодовым алфавитом, или алфавитом для кодирования. При этом кодированию подлежат как отдельные символы исходного алфавита, так и их комбинации.
Совокупность символов кодового алфавита, применяемых для кодирования одного символа или одной комбинации символов исходного алфавита, называется кодовой комбинацией или кодом символа. При этом кодовая комбинация может содержать один символ кодового алфавита.
Символ или комбинация символов исходного алфавита, которому соответствует кодовая комбинация называется исходным символом.
Совокупность кодовых комбинаций называется кодом.
Взаимосвязь символов или комбинаций символов исходного алфавита с их кодовыми комбинациями составляет таблицу соответствия (таблицу кодов).
Код – является очень обширным понятием, ведь звуки, которые мы произносим и складываем в слов, - код который понятен любому, кто слышит наш голос и понимает язык, на котором мы говорим. Этот код называется речью. Существуют коды для записи слов на бумаге, такой код – это рукописные и печатные символы, которые мы видим в книгах, журналах, газетах и экранах. Для нас это письменная речь или текст. Для глухих и немых был разработан другой код, облегчающий общение, - язык жестов, который состоит из движений рук, в которых могут быть зашифрованы не только буквы или слова, но и целые концепции. Для слепых письменный текст был заменен азбукой Брайля – системой выпуклых точек, соответствующих буквам, буквосочетаниям или целым словам.
При общении мы пользуемся различными кодами, поскольку одна кодировка удобнее других. Например, устную речь невозможно хранить на бумаге, и ее заменяет текст. Тихо передавать информацию на расстоянии невозможно ни речью, ни текстом. Однако раньше для этого хорошо подходила азбука Морзе.
В настоящее время с помощью кода можно предавать не только текстовые сообщения, но также видео, аудио, графическую информацию.
1. От простого к сложному
В основе современных методов кодирования данных лежит простой принцип, состоящий из всего двух чисел, 0 и 1. Проще всего объяснить его с помощью двух довольно старых методов, а именно с азбуки Морзе и шрифта Брайля.
1.1 Азбука Морзе
Азбука Морзе представляет собой набор «точек» и «тире», которые могут быть наглядным примером 0 и 1. В ней присутствуют два вида бликов или звуковых сигналов: короткие и длинные. В азбуке Морзе каждой букве алфавита, цифре и некоторым символам соответствует краткая серия точек и тире приведенная в рисунке 1.
Рисунок 1
Допустим, у нас есть фонарик, и мы хотим передать букву «А», для этого мы быстро прищёлкиваем фонарик, а потом включаем и выключаем его более медленно. Перед отправкой следующего символа делаем небольшую паузу. Принято, что тире должно быть примерно втрое длиннее точки. Так, если точка длится одну секунду, то тире три.
Паузы между точками и тире в азбуке Морзе критически важны. Так при передаче «А» фонарик должен быть выключен между точкой и тире в течении периода, по длительности примерно равного одной точке. Между буквами в слове выдерживаются более долгие паузы, сравнимые по длительности с тире. Между словами выдерживается период примерно в два тире.
•−•− •−−• •• −−−− ••− −•− ••− •−• ••• −−− •−− ••− ••−− ••• •− −−
Например, данный код означает: «я пишу курсовую сам».
Код Морзе называется двоичным. Двоичные коды всегда можно описать в виде степени двойки:
количество кодов = 2количество точек и тире
1.2 Код Брайля
Код Брайля был разработан для помощи незрячим детям в обучении, в то время как он был создан, в ходу была другая система письма для слепых, она заключалась в тактильном отображении каждой буквы, но такой метод был очень дорог в производстве и почти не было возможности производить подобные книги в массовое пользование.
В шрифте Брайля символы письменного языка – буквы и знаки препинания – кодируются комбинациями от одной до шести выпуклых точек, расположенных в ячейке размерами 2 х 3. Точки в ячейке нумеруются с 1 по 6 (рисунок 2):
Рисунок 2
Для выдавливания точек используются специальные пишущие машинки и станки.
Самое важное что в шрифте Брайля используется двоичная система. Любая точка может пребывать в двух состояниях: плоская и выпуклая. Значит к нему можно применить систему комбинаторики, то есть общее число комбинаций шести точек, каждая из которых может быть плоской или выпуклой, равно 2 х 2 х 2 х 2 х 2 х 2 = 26 = 64.
Следовательно, система Брайля содержит 64 различных кода. При этом для обозначения цифр, букв и символов нужно меньше 64 комбинаций (рисунок 3):
Рисунок 3
⠫ ⠺⠎⠑ ⠑⠭⠑ ⠙⠑⠇⠁⠳ ⠑⠑ ⠎⠁⠍
На коде Брайля это означает «я все еще делаю ее сам»
Эти примеры подводят к одному простому факту, для передачи информации достаточно лишь бита.
2. Бит
Если нужно сказать «да» или «нет», обозначить «открыто» или «закрыто», «включено» или «выключено» и вообще отметить любое действие, имеющее два отличных друг от друга состояния можно использовать всего один бит, то есть 0 или 1.
Бит является основой самой простой системы счисления – двоичной. В ней всего две цифры: 0 и 1. Системой счисления называют совокупность правил и приемов наименования и записи чисел, а также получения значений чисел из изображающих их символов. Количество знаков в алфавите системы счисления обычно отражается в ее названии: двоичная, троичная, восьмеричная, десятичная, шестнадцатеричная и т.д. Если нужно что-то проще двоичной системы, придется избавится от 1, и останется только 0. Имея всего лишь 0, ничего не сделаешь.
Слово «бит» - сокращение от английского выражения binary digit («двоичная цифра»). В английском языке у слова bit есть и общеупотребительное значение – «кусочек, небольшая часть», и это описание отлично подходит, ведь бит – двоичная цифра, мельчайший фрагмент информации. Суть бита заключается в том, что он передает очень мало информации. Меньше бита – отсутствие информации.
3. Системы счисления в компьютере
Для хранения двоичных чисел в компьютере служит устройство, которое принято называть ячейкой памяти. Ячейки образуются их нескольких битов, так же как двоичные числа образуются из двоичных разрядов (разрядность двоичной системы счисления похожа на десятичную, есть разряды единиц, десятков, сотен и т.д., так как и для изображения двоичных чисел и двоичных машинных кодов используется несколько двоичных разрядов, несколько бит). Ячейки различных компьютеров могут состоять их различного количества бит. Однако это создает значительные сложности для организации обмена данными между разными моделями компьютеров. Поэтому, начиная с машин третьего поколения, стандартными являются ячейки, которые состоят из восьми битов.
Элемент памяти компьютера, состоящий из 8 битов, называется байтом.
Слово «байт» произошло от английского термина byte, представляющего собой сокращение словосочетания Binary term – двоичный терм, выражение. Байт сохраняет все свойства бита, то есть он может сколь угодно долго хранить записанный в него двоичный код, этот код, можно прочитать, можно также записать в байт любой новый код.
Условно бит изображают в виде небольшого прямоугольника, содержащего либо цифру «0», либо цифру «1», а байт рисуют в виде расположенных рядом восьми одинаковых прямоугольников, каждый из которых содержит какую-либо двоичную цифру. Каждый из восьми битов байта может содержать любую из двоичных цифр независимо от остальных. Следовательно, байт может содержать произвольную комбинацию, последовательность из восьми нулей или единиц, например последовательность 10110011. Такую последовательность также называют двоичным числом, двоичным кодом или просто кодом.
Запись двоичного кода легко спутать с аналогичным по записи десятичным числом. Например, двоичный код 10110011 можно рассматривать и как «обычное число» (десять миллионов сто десять тысяч одиннадцать). В таких случаях справа от числа записывают индекс 2, если число в двоичной системе или индекс 10, если число в десятичной системе. Таким образом: 101100112 – двоичное число, а 1011001110 – десятичное. Так же для удобства восприятия десятичные числа в текстах на русском языке принято делить на группы по три цифры в каждой и отделять эти группы друг от друга пробелом – 10 110 01110. По аналогии с этим двоичные числа иногда также группируют, но по четыре цифры в группе – 1011 00112.
Так как байт состоит из восьми двоичных разрядов, то количество различных кодов, различных комбинаций из восьми нулей и единиц, записываемых в один байт равно 28 = 256.
Стоит также упомянуть шестнадцатеричную систему счисления. Шестнадцатеричная система счисления – это позиционная система счисления по целочисленному основанию 16. В качестве цифр этой система счисления обычно используются цифры от 0 до 9 и латинские буквы от А до F. Буквы A, B, C, D, E, F имеют значения 1010, 1110, 1210, 1310, 1410, 1510 соответственно. Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа. Например, требуется перевести шестнадцатеричное число 8С4ВВ в десятичное. В этом числе 3 цифры. В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16:
8С4ВВ = 8 × 164 + 12 × 163 + 4 × 162 + 11 × 161 + 11 × 160 = 524 288 + 49 152 + 1024 + 176 + 11 = 574 651
Для перевода многозначного двоичного числа в шестнадцатеричную систему нужно разбить его на тетрады справа налево и заменить каждую тетраду соответствующей шестнадцатеричной цифрой. Для перевода числа из шестнадцатеричной системы в двоичную нужно заменить каждую его цифру на соответствующую тетраду из нижеприведённой таблицы перевода:
Всю память компьютера можно образно представить себе, как автоматическую камеру хранения, состоящую из большого количества пронумерованных байтов, в каждый из которых можно записать некоторый двоичный машинный код. Затем по известному номеру можно найти байт и прочитать записанный в нем код.
При компьютерной обработке данных приходится иметь дело с текстовой, графической, числовой, звуковой и некоторыми другими видами информации. Для хранения данных различной природы применяются разные способы кодирования. Кроме того, для одной и той же разновидности информации также могут использоваться различные способы кодирования, которые отличаются друг от друга эффективностью, а также различными требованиями к ресурсам компьютера.
Конкретный способ кодирования той или иной разновидности информации в компьютере принято называть форматом данных. В общем случае термин «формат» понимается как строго определенный, исчерпывающе полный набор правил. Следовательно, в приведенном выше определении речь идет об исчерпывающем наборе правил кодирования той или иной разновидности данных.
4. Кодирование данных
4.1 Текстовая информация
При вводе текстовой информации в компьютер символы (буквы, цифры, знаки) кодируются с помощью различных кодовых систем, которые состоят из набора кодовых таблиц, размещенных на соответствующих страницах стандартов для кодирования текстовой информации. В таких таблицах каждому символу присваивается определенный числовой код в шестнадцатеричной или десятичной системе счисления, т.е. кодовые таблицы отражают соответствие между изображениями символов и числовыми кодами и предназначены для кодирования и декодирования текстовой информации. При вводе текстовой информации с помощью клавиатуры компьютера каждый вводимый символ подвергается кодированию, т.е. преобразуется в числовой код, при выводе текстовой информации на устройство вывода компьютера (дисплей, принтер) по числовому коду символа строится его изображение. Присвоение символу определенного числового кода является результатом соглашения между соответствующими организациями разных стран. В настоящее время нет единой универсальной кодовой таблицы, удовлетворяющей буквам национальных алфавитов разных стран.