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