Для автоматизации работы с данными, относящимися к разным типам, важно унифицировать форму их представления. Для этого в информатике производится кодирование числовых, текстовых, графических данных, звуковой информации, т. е. выражение данных одного типа через данные другого типа.
Кодированием мы занимаемся довольно часто, например, человек мыслит весьма расплывчатыми понятиями, и, чтобы донести мысль от одного человека к другому, применяется язык. Язык - это система кодирования понятий. Чтобы записать слова языка, применяется опять же кодирование - азбука. Проблемами универсального кодирования занимаются различные области науки, техники, культуры. Чертежи, ноты, математические выкладки являются тоже некоторым кодированием различных информационных объектов. Аналогично, универсальная система кодирования требуется для того, чтобы большое количество различных видов информации можно было бы обработать на компьютере.
Подготовка данных для обработки на компьютере (представление данных) в информатике имеет свою специфику, связанную с электроникой. Например, мы хотим проводить расчеты на компьютере. При этом нам придется закодировать цифры, которыми записаны числа. На первый взгляд, представляется вполне естественным колировать цифру ноль состоянием электронной схемы, где напряжение на некотором элементе будет равно 0 вольт, цифру единица — 1 вольт, двойку - 2 вольт и т.д., девятку - 9 вольт. Для записи каждого разряда числа в этом случае потребуется элемент электронной схемы, имеющий десять состояний. Однако элементная база электронных схем имеет разброс параметров, что может привести к появлению напряжения, скажем. 3,5 вольт, а оно может быть истолковано и как тройка и как четверка, т.е. потребуется на уровне электронных схем «объяснить» компьютеру, где заканчивается тройка, а где начинается четверка. Кроме того, придется создавать весьма непростые электронные элементы для производства арифметических операций с числами, т.е. на схемном уровне должны быть созданы таблица умножения - 10х10 = 100 схем и таблица сложения - тоже 100 схем. Еще сложнее выглядела бы задача обработки текстов, ведь русский алфавит содержит 33 буквы.
В то же время весьма просто реализовались электронные схемы с двумя устойчивыми состояниями: есть ток - 1, нет тока - 0, есть электрическое (магнитное) поле - 1, нет - 0. Т.е. использовать двоичное кодирование как универсальную форму представления данных для дальнейшей обработки их средствами вычислительной техники. Предполагается, что данные располагаются в некоторых ячейках, представляющих упорядоченную совокупность из двоичных разрядов, а каждый разряд может временно содержать одно из состояний - 0 или 1. Тогда группой из двух двоичных разрядов (двух бит) можно закодировать 22 = 4 различные комбинации кодов (00, 01, 10, 11); аналогично, три бита дадут 23= 8 комбинаций, восемь бит - 28 = 256 и т.д.
Итак, внутренняя азбука компьютера содержит всего два символа: 0, 1, поэтому возникает проблема представления всего многообразия типов данных - чисел, текстов, звуков, графических изображений, видео и др. - только этими двумя символами, с целью дальнейшей обработки средствами вычислительной техники.
Кодирование числовых данных
Система кодирования числовых данных в вычислительной технике называется двоичным кодированием. Информация кодируется, как правило, в двоичной или двоично-десятичной системах счисления. Система счисления — это способ изображения чисел с помощью символов, имеющих определенные количественные значения. Это совокупность приемов и правил наименования и обозначения чисел, позволяющих установить взаимно однозначное соответствие между любым числом и его представлением в виде конечного числа символов.