Кодирование текстовых и графических данных
Кодирование текстовых данных
Если каждому символу алфавита сопоставить определенное целое число, то с помощью двоичного кода можно кодировать текстовую информацию. Восьми битов (1 байта) достаточно для кодирования 256 различных символов. Общепринятой системой кодирования текстовых данных является кодировка ASCII (American Standard Code for Information Interchange – стандартный код информационного обмена США). В системе ASCII закреплены две таблицы кодирования: базовая и расширенная. Базовая таблица определяет значения кодов от 0 до 127 и содержит коды символов английского алфавита (как строчных, так и прописных), знаков препинания, цифр, арифметических действий и некоторых вспомогательных символов. Вторая, расширенная часть определяет значения кодов от 128 до 255 и включает в себя национальные системы кодирования (например, для России – это символы русского алфавита). Отсутствие единого стандарта для расширенной части системы кодирования ASCII привело к множественности одновременно действующих кодировок. Наиболее распространенными кодировками символов русского языка являются Windows1251 иКОИ-8 (код обмена информацией, восьмизначный). Кодировка Windows-1251 используется на большинстве локальных компьютеров, работающих на платформе Windows.
Кодирование графических данных
Если рассмотреть с помощью увеличительного стекла черно-белое графическое изображение, то можно увидеть, что оно состоит из мельчайших точек, образующих характерный узор, называемый растром. Поскольку линейные координаты и яркость каждой точки можно выразить с помощью целых чисел, то, следовательно, для представления графических данных можно использовать двоичное кодирование. Общепринятым является представление черно-белых иллюстраций в виде комбинации точек с 256 градациями серого цвета. Таким образом, для кодирования любой точки обычно достаточно трех байт (по одному для кодирования яркости и линейных координат по осям X и Y соответственно). Для кодирования цветных графических изображений применяется принцип декомпозиции произвольного цвета на основные составляющие. Такую декомпозицию можно производить на основе двух методов. Первый метод использует в качестве основных составляющих три цвета: R – Red – красный, G – Green – зеленый, B – Blue – синий.
Если каждому символу алфавита сопоставить определенное целое число (например, порядковый номер), то с помощью двоичного кода можно кодировать и текстовую информацию. Восьми двоичных разрядов достаточно для кодирования 256 различных символов. Этого хватит, чтобы выразить различными комбинациями восьми битов все символы английского и русского языков, как строчные, так и прописные, а также знаки препинания, символы основных арифметических действий и некоторые общепринятые специальные символы, например символ «§».
Система счисления
Совокупность приемов наименования и обозначение чисел называется системой исчисления. В качестве условных знаков для записи чисел используются цифры. Система исчисления, в которой значение каждой цифры в произвольном месте последовательности цифр, обозначающей запись числа, не изменяется, называется непозиционной. Система исчисления, в которой значение каждой цифры зависит от места в последовательности цифр в записи числа, называется позиционной. Чтобы определить число, недостаточно знать тип и алфавит системы исчисления. Для этого необходимо еще использовать правила, которые позволяют по значениям цифр установить значение числа. Простейшим способом записи натурального числа является изображение его с помощью соответствующего количества палочек или черточек. Таким способом можно обозначить небольшие чисел. Следующим шагом было изобретение специальных символов (цифр). В непозиционной системе каждый знак в записи независимо от места означает одно и то же число. Хорошо известным примером непозиционной системы исчисления является римская система, в которой роль цифр играют буквы алфавита: І - один, V - пять, Х - десять, С - сто, L - пятьдесят, D -пятьсот, М - тысяча. Например, 321 = СССХХІ. В непозиционной системе исчисления арифметические операции выполнять неудобно и сложно. Позиционные системы исчисления. 1. Общепринятой в современном мире является десятичная позиционная система исчисления Основой системы является число десять. Основой системы исчисления называется число, означающее, во сколько раз единица следующего разряда больше чем единица предыдущего. 2. Более распространенной для представления чисел в памяти компьютера является двоичная система исчисления. Для изображения чисел в этой системе необходимо две цифры: 0 и 1, то есть достаточно двух стойких состояний физических элементов. Эта система близка к оптимальной по экономичности, и кроме того, таблицы сложения и умножения в этой системе элементарные:
Алгоритмы перевода чисел из одной позиционной системы исчисление в другую. (1.) Для перевода чисел из системы исчисления с основой p в систему исчисления с основой q, используя арифметику новой системы исчисления с основой q, нужно записать коэффициенты разложения, основы степеней и показатели степеней в системе с основой q и выполнить все действия в этой самой системе. Очевидно, что это правило удобно при переводе в десятичную систему исчисления. Например: из шестнадцатиричной в десятичную:
92C816=9*10163+2*10162+C*10161+8*10160= 9*16103+2*16102+12*16101+8*16100=37576
из восьмиричной в десятичную: 7358=7*1082+3*1081+5*1080= 7*8102+3*8101+5*8100=47710
из двоичной в десятичную:1101001012=1*1028+1*1027+ 0*1026+1*1025+0*1024+0*1023+ 1*1022+0*1021+1*1020= 1*2108+1*2107+0*2106+1*2105+ 0*2104+0*2103+1*2102+0*2101+ 1*2100=42110. (2.) Для перевода чисел из системы исчисления с основой p в систему исчисления с основой q с использованием арифметики старой системы исчисления с основой p нужно:
для перевода целой части: последовательно число, записанное в системе основой делить на основу новой системы исчисления, выделяя остатки. Последние записанные в обратном порядке, будут образовывать число в новой системе исчисления; для перевода дробной части:
последовательно дробную часть умножать на основу новой системы исчисления, выделяя целые части, которые и будут образовывать запись дробной части числа в новой системе исчисления.
Основные структуры данных
Работа с большими наборами данных автоматизируется проще, когда данные упорядочены, то есть образуют заданную структуру. Существует три основных типа структур данных: линейная, иерархическаяи табличная. Их можно рассмотреть на примере обычной книги. Если разобрать книгу на отдельные листы и перемешать их, книга потеряет свое назначение. Она по-прежнему будет представлять набор данных, но подобрать адекватный метод для получения из нее информации весьма непросто. (Еще хуже дело будет обстоять, если из книги вырезать каждую букву отдельно — в этом случае вряд ли вообще найдется адекватный метод для ее прочтения.)Если же собрать все листы книги в правильной последовательности, мы получим простейшую структуру данных — линейную. Такую книгу уже можно читать, хотя для поиска нужных данных ее придется прочитать подряд, начиная с самого начала, что не всегда удобно.Для быстрого поиска данных существует иерархическая структура. Так, например, книги разбивают на части, разделы, главы, параграфы и т. п. Элементы структуры более низкого уровня входят в элементы структуры более высокого уровня: разделы состоят из глав, главы из параграфов и т. д. Для больших массивов поиск данных в иерархической структуре намного проще, чем в линейной, однако и здесь необходима навигация, связанная с необходимостью просмотра. На практике задачу упрощают тем, что в большинстве книг есть вспомогательная перекрестная таблица, связывающая элементы иерархической структуры с элементами линейной структуры, то есть связывающая разделы, главы и параграфы с номерами страниц. В книгах с простой иерархической структурой, рассчитанных на последовательное чтение, эту таблицу принято называть оглавлением, а в книгах со сложной структурой, допускающей выборочное чтение, ее называют содержанием.