Кодирование информации в компьютере
Вся информация, которую обрабатывает компьютер, должна быть представлена двоичным кодом с помощью двух цифр — 0 и 1. Эти два символа принято называть двоичными цифрами, или битами. С помощью двух цифр 1 и 0 можно закодировать любое сообщение. Это явилось причиной того, что в компьютере обязательно должно быть организовано два важных процесса:
- кодирование, которое обеспечивается устройствами ввода при преобразовании входной информации в форму, воспринимаемую компьютером, то есть в двоичный код;
- декодирование, которое обеспечивается устройствами вывода при преобразовании данных из двоичного кода в форму, понятную человеку.
С точки зрения технической реализации использование двоичной системы счисления для кодирования информации оказалось намногоболее простым, чем применение других способов. Действительно, удобно кодировать информацию в виде последовательности нулей и единиц, если представить эти значения как два возможных устойчивых состояния электронного элемента:
- 0 — отсутствие электрического сигнала или сигнал имеет низкий уровень;
- 1 — наличие сигнала или сигнал имеет высокий уровень.
Эти состояния легко различать. Недостаток двоичного кодирования — длинные коды. Но в технике легче иметь дело с большим числом простых элементов, чем с небольшим количеством сложных.
Вам и в быту ежедневно приходится сталкиваться с устройством, которое может находиться только в двух устойчивых состояниях: включено/выключено. Конечно же, это хорошо знакомый всем выключатель. А вот придумать выключатель, который мог бы устойчиво и быстро переключаться в любое из 10 состояний, оказалось невозможным. В результате после ряда неудачных попыток разработчики пришли к выводу о невозможности построения компьютера на основе десятичной системы счисления. И в основу представления чисел в компьютере была положена именно двоичная система счисления.
В настоящее время существуют разные способы двоичного кодирования и декодирования информации в компьютере. В первую очередь это зависит от вида информации, а именно, что должно кодироваться: текст, числа, графические изображения или звук. Кроме того, при кодировании чисел важную роль играет то, как они будут использоваться: в тексте, в расчетах или в процессе ввода-вывода. Накладываются также и особенности технической реализации.
Кодирование чисел
Система счисления — совокупность приемов и правил записи чисел с помощью определенного набора символов.
Для записи чисел могут использоваться не только цифры, но и буквы (например, запись римских цифр — XXI). Одно и то же число может быть по-разному представлено в различных системах счисления.
В зависимости от способа изображения чисел системы счисления делятся на позиционные и непозиционные.
В позиционной системе счисления количественное значение каждой цифры числа зависит от того, в каком месте (позиции или разряде) записана та или иная цифра этого числа. Например, меняя позицию цифры 2 в десятичной системе счисления, можно записать разные по величине десятичные числа, например 2; 20; 2000; 0,02 и т. д.
В непозиционной системе счисления цифры не изменяют своего количественного значения при изменении их расположения (позиции) в числе. Примером непозиционной системы может служить римская система, в которой независимо от местоположения одинаковый символ имеет неизменное значение (например, символ X в числе XXV).
Количество различных символов, используемых для изображения числа в позиционной системе счисления, называется основанием системы счисления.
В компьютере наиболее подходящей и надежной оказалась двоичная система счисления, в которой для представления чисел используются последовательности цифр 0 и 1.
Кроме того, для работы с памятью компьютера оказалось удобным использовать представление информации с помощью еще двух систем счисления:
- восьмеричной (любое число представляется с помощью восьми цифр — 0, 1, 2... 7);
- шестнадцатеричной (используемые символы-цифры — 0, 1, 2... 9 и буквы — А, В, С, D, Е, F, заменяющие числа 10, 11, 12, 13, 14, 15 соответственно).
Кодирование символьной информации
Нажатие алфавитно-цифровой клавиши на клавиатуре приводит к тому, что в компьютер посылается сигнал в виде двоичного числа, представляющего собой одно из значений кодовой таблицы. Кодовая таблица - это внутреннее представление символов в компьютере. Во всем мире в качестве стандарта принята таблица ASCII (AmericanStandartCodeforInformationalInterchange - американский стандартный код информационного обмена).
Для хранения двоичного кода одного символа выделен 1 байт = 8 бит. Учитывая, что каждый бит принимает значение 1 или 0, количество возможных сочетаний единиц и нулей равно 28 = 256.
Значит, с помощью 1 байта можно получить 256 разных двоичных кодовых комбинаций и отобразить с их помощью 256 различных символов. Эти коды и составляют таблицу ASCII.
Пример, при нажатии клавиши с буквой S в память компьютера записывается код 01010011. При выводе буквы S на экран компьютер выполняет декодирование — на основании этого двоичного кода строится изображение символа.
SUN (СОЛНЦЕ) - 01010011 01010101 01001110
Стандарт ASCII кодирует первые 128 символов от 0 до 127: цифры, буквы латинского алфавита, управляющие символы. Первые 32 символа являются управляющими и предназначены в основном для передачи команд управления. Их назначение может варьироваться в зависимости от программных и аппаратных средств. Вторая половина кодовой таблицы (от 128 до 255) американским стандартом не определена и предназначена для символов национальных алфавитов, псевдографических и некоторых математических символов. В разных странах могут использоваться различные варианты второй половины кодовой таблицы.
Обратите внимание! Цифры кодируются по стандарту ASCII записываются в двух случаях - при вводе-выводе и когда они встречаются я тексте. Если цифры участвуют в вычислениях, то осуществляется их преобразование в другой двоичный код.
Для сравнения рассмотрим число 45 для двух вариантов кодирования.
При использовании в тексте это число потребует для своего представления 2 байта, поскольку каждая цифра будет представлена своим кодом в соответствии с таблицей ASCII. В двоичной системе - 00110100 00110101.
При использовании в вычислениях код этого числа будет получен по специальным правилам перевода и представлен в виде 8-разрядного двоичного числа 00101101, на что потребуется 1 байт.