Лекция: Кодирование данных
Для автоматизации работы с данными, относящимися к различным типам, важно унифицировать их форму представления. Для этого используется кодирование – выражение данных одного типа через данные другого типа.
В ЭВМ принята двоичная система кодирования, т.к. с аппаратной точки зрения весьма просто реализовать электронные схемы с двумя устойчивыми противоположными состояниями: есть ток – 1, нет тока – 0. В двоичной системе исчисления знаки 0 и 1 называют битами.
С помощью 1 бита можно закодировать один из двух символов – либо 0, либо 1; из 2 бит можно составить один из четырех вариантов кодов: 00, 01, 10, 11. Двоичная последовательность цифр из N разрядов (бит) позволяет закодировать 2N различных значений.
Двоичное целое число занимает в памяти ЭВМ 16 или 32 двоичных разряда (бита). Это зависит от длины числа и способа объявления переменной. Поля памяти компьютера имеют специальные названия: 8 бит называют байтом, 16 бит – словом, 32 бита – двойное слово, 1024 байта – лист (Кбайт).
В прямом коде знак числа записывается в старшем бите 1-го байта: 1 – отрицательное число, 0 – абсолютная величина. Двоичное число записывается с 0 бита, оставшиеся биты заполняются нулями.
Наиболее часто для записи отрицательных чисел используют дополнительный код. Использование этого кода позволяет упростить аппаратную реализацию операции вычитание, которая заменяется операцией сложения уменьшаемого, представленного в прямом коде, и вычитаемого, представленного в дополнительном коде. Дополнительный код получается из прямого путем инвертирования каждого бита и затем добавления единицы к младшему биту числа:
-95(10) = -1011111(2) – число в двоичной системе счисления;
00000000 01011111 – двоичное число без знака в 2 байта;
11111111 10100001 – двоичное число в дополнительном коде.
Для представления символьной информации в компьютерах используется 8-разрядный код ASCII (American Standard Code for Information Interchange – стандартный код информационного обмена США). Код ASCII ставит в соответствие каждому символу уникальную комбинацию из 8 бит. Поскольку значащих бит всего 8, то таких комбинаций будет 28, т.е. 256.
В данной системе закреплены две таблицы кодирования – базовая и расширенная. Базовая таблица закрепляет значения кодов от 0 до 127, содержит коды управляющих символов (от 0 до 32) и символов английского алфавита, знаков препинания, цифр, арифметических действий и некоторых вспомогательных символов. Расширенная таблица относится к символам с номерами от 128 до 255 и содержат коды символов национальных алфавитов.