Представление данных и программирование компьютеров
Формы представления и кодирования данных
Компьютеры имеют дело с информацией. Они реализуют различные алгоритмы обработки информации. Это позволяет автоматизировать процесс решения задач. Чтобы лучше понять, как это происходит, нужно прежде всего уточнить, что подразумевается под словом "информация".
Формы представления и кодирования данных
Не вдаваясь в тонкости определения этого понятия, будем исходить из того, что информация - это сведения об условиях задачи и методах ее решения. Условия задачи будем называть данными, а методы решения - знаниями. Эти разновидности информации могут быть зафиксированы с помощью букв, знаков, цифр, картинок и т. п. или закодированы в мозге или компьютере.
Носитель информации - физическая среда, в кото рой она фиксируется. В роли носителя могут выступать бумага, фотопленка, клетки мозга, перфокарты, перфоленты, магнитные ленты и диски или ячейки памяти компьютера. Современная техника предлагает все новые и новые разновидности носителей информации. Для кодирования информации в них используются электрические, магнитные и оптические свойства материалов. Разрабатываются носители, в которых информация фиксируется на уровне отдельных молекул.
Важным требованием, предъявляемым к любому носителю информации, является возможность считывания информации. Сведения, написанные в книгах, может читать человек. Информацию, закодированную на машинных носителях, может "читать" (точнее, декодировать) компьютер. При этом сведения, физически зафиксированные на любом носителе информации, представляют собой набор символов. В книгах - это буквы, цифры и другие знаки, на фотографии - набор точек разного цвета или степени яркости.
Эти сведения об объектах реального мира и его закономерностях можно зафиксировать в виде последовательности символов.
Компьютеры хорошо приспособлены именно для обработки символьных данных, их преобразования из одной формы в другую, выполнения арифметических и логических операций и т. п. Поэтому в наш лексикон, связанный с компьютерной информатикой, прочно вошли выражения типа "обработка слов", "база данных", "анализ предложений", "логический вывод" и т. п.
Мы знаем, что для представления разнообразной информации нужно не так уж много символов. Например, в миллионах книг и статей на русском языке используется весьма ограниченный набор различных символов. Он включает 33 буквы алфавита, 10 цифр и несколько десятков знаков. Набор этих символов позволяет зафиксировать колоссальный объем информации. Более того, все то, что написано с использованием русского алфавита, можно перевести на любой другой язык без потери информации.
Набор символов, используемых для представления и обработки информации в компьютере, минимален. Он включает всего два символа - 0 и 1. Тем не менее с их помощью можно зафиксировать любые данные и знания. Это легко понять, если вспомнить принцип кодирования и передачи информации с помощью азбуки Морзе. Телеграфист, используя только два символа этой азбуки - точки и тире, может передать практически любой текст. Этот принцип лежит в основе использования в компьютере бинарной логики, алфавит которой состоит всего из двух знаков.
Для определения количества информации служит специальная единица, получившая название "бит". Этот термин происходит от сокращения английского термина binary digit - двоичная единица. Один бит кодируется в компьютере с помощью напряжения, принимающего значения 0 В и 5 В. Этим значениям напряжения соответствует два значения бинарного символа: 0 и 1.
Обычно информация хранится в машинных кодах, которые имеют длину в один или несколько байтов. Одному байту соответствует 8 бит, слову - 16 бит, или 2 байта. Информационная емкость памяти компьютеров измеряется кило- и мегабайтами.
Один килобайт (Кбайт) содержит 210 = 1024 байт, а один мегабайт (Мбайт) = 220 = 1048576 байт. Приставки "кило" и "мега" при определении единиц измерения обычно означают 1000 и 1 000 000. Однако при определении Кбайт и Мбайт они лишь приблизительно соответствуют этому традиционному пониманию.
Важное значение имеет экономность кодирования последовательностей символов в компьютере. Можно ли закодировать последовательность символов без потери информации так, чтобы ее код имел наименьшее количество бит?
Ответ на этот вопрос дает теория оптимального кодирования и передачи информации по каналам связи, одним из основоположников которой является американский ученый К. Шеннон. В 1948 г. он разработал статистический подход к измерению количества информации, суть которого заключается в том, что обрабатываемая информация рассматривается как источник символов с заданными вероятностями их появления. Если, например, компьютер обрабатывает тексты, то в роли символов выступают буквы из алфавита используемого языка (русского, английского, французского и т. ц.). Можно определить вероятности (частоты) появления этих букв и подсчитать энтропию (меру неопределенности), которую несет в себе обработка одного символа. По этим данным определяется оптимальный способ кодирования. Например, при оптимальном кодировании английского текста потребовалось бы 14 бит на слово или 2,5 бита на символ.