Информатика и вычислительная техника

       

Машинные коды и форматы представления данных


Во всех ЭВМ для выполнения арифметических операций над числами применяются специальные машинные коды: прямой, обратный и дополнительный. С использованием этих кодов операция вычитания (или алгебраического сложения) сводится к арифметическому суммированию, упрощается определение знака результата операции, облегчается выработка признака переполнения разрядной сетки.

В каждом из этих кодов перед старшим цифровым разрядом числа располагается знаковый разряд, в котором записывается нуль для положительного числа и единица для отрицательного. В дальнейшем при записи машинных кодов знаковый разряд будет отделяться от цифровых разрядов точкой.

Прямой код двоичного числа содержит цифровые разряды, перед которыми записан знаковый разряд. Например, для чисел х = + 1101 и у = - 1001 их прямые коды запишутся в виде: xпр = 0.1 101 и yпр = 1.1001.

Обратный код положительного числа полностью совпадает с его прямым кодом. Обратный код отрицательного числа содержит единицу в знаковом разряде, а значащие цифровые разряды числа заменяются на инверсные, т.е. нули заменяются единицами, а единицы - нулями. Для приведенного выше примера с числами х и у имеем: хобр = 0.1101 и yобр = 1.0110.

Особенностью обратного кода является то, что в нем нуль имеет двоякое представление. Он может быть положительным (+ 0)обр = 0.00...0 и отрицательным числом (- 0)обр = 1.11...1. Двойственное представление нуля явилось причиной того, что в современных ЭВМ числа обычно представляются не обратным, а дополнительным кодом.

Дополнительный код положительного числа совпадает с прямым кодом, а для отрицательного числа образуется из обратного кода путем прибавления единицы к младшему разряду. Для приведенного ранее примера имеем: xдоп = хпр = 0.1101 и yдоп = 1.0111.

В дополнительном коде нуль имеет единственное представление (+ 0)доп = (- 0)доп = 0.00..0.

Следует также обратить внимание на то, что для данной длины разрядной сетки дополнительным кодом представляется на единицу больше отрицательных чисел, чем положительных.
Например, в 8 - разрядной сетке можно представить наибольшее положительное число + 127 (в прямом коде 0.1111111) и наименьшее отрицательное число - 128 (в дополнительном коде 1.0000000).

При использовании обратного или дополнительного кода операция алгебраического сложения сводится к простому арифметическому суммированию. Положительные числа представляются в прямом коде, а отрицательные - в инверсном (обратном или дополнительном) коде. Затем производится арифметическое суммирование этих кодов, включая знаковые

97

разряды, которые при этом рассматриваются как старшие разряды. При использовании обратного кода возникающая единица переноса из знакового разряда циклически прибавляется к младшему разряду суммы кодов, а при использовании дополнительного кода эта единица отбрасывается, что также является определенным преимуществом дополнительного кода по сравнению с обратным.

Если в результате суммирования получен положительный результат (0 в знаковом разряде), то он представлен в прямом коде; если получен отрицательный результат (1 в знаковом разряде), то он представлен в том инверсном коде, который использовался для кодирования отрицательных слагаемых,



В ЭВМ производится обработка не только числовой информации, но также символьной или текстовой информации. Для кодирования символьной (алфавитно - цифровой) информации используется код ASCII (American Standard Code for Information Interchange - Американский стандартный код для обмена информацией), имеющий основной стандарт и его расширение. Основной стандарт для кодирования символов использует шестнадцатеричные коды 00 - 7F, расширение стандарта - коды 80 - FF. Основной стандарт является международным и используется для кодирования управляющих символов, цифр и букв латинского алфавита; в расширенном стандарте кодируются символы псевдографики и буквы национального алфавита (естественно, в разных странах разные).

Таким образом, любая числовая и символьная информация представляется в ЭВМ двоичными кодами. Отдельные элементы этих кодов принимают значения 0 или 1 и называются разрядами, или битами.


В современных ЭВМ в качестве минимальной адресуемой и обрабатываемой единицей информации принят 8 - разрядный байт. Каждый байт, размещенный в памяти ЭВМ, имеет адрес, определяющий его местонахождение.

Информационные байты представляются в ЭВМ определенными форматами, которые могут быть как фиксированной, так и переменной длины.

Форматы фиксированной длины используют, помимо байта, также полуслово (2 байта), слово (4 байта) и двойное слово (8 байт), как показано на рис. 5.3.

Рис. 5.3. Форматы фиксированной длины

98

В форматах фиксированной длины обычно представляются двоичные числа, команды программы и некоторые логические данные.

Формат данных переменной длины состоит из достаточно большой группы последовательно расположенных байтов (например, от 1 до 256). Адресация таких данных, как и в форматах фиксированной длины, производится: по адресу самого левого байта.

Для удобства выполнения арифметических операций над десятичными числами в ЭВМ наряду с существующим кодированием алфавитно - цифровых символов предусматриваются специальные форматы для десятичных чисел: распакованный (зонный) и упакованный. Каждая десятичная цифра представляется в двоично - десятичном коде 4 - разрядным двоичным числом.

В распакованном формате (рис. 5.4, а) в правых четырех разрядах каждого байта записывается одна десятичная цифра, а в левых четырех разрядах - специальный 4 - разрядный символ, называемой зоной. Знак числа размещается в четырех левых разрядах младшего байта. Зонный формат обычно используется при операциях ввода - вывода десятичных чисел.

Рис. 5.4. Форматы представления десятичной информации:а) зонный: б) упакованный

В упакованном формате (рис. 5.4, б) каждый байт служит для представления двух десятичных цифр. Знак числа размещается в правых четырех разрядах младшего байта. Десятичное число в этом формате всегда занимает целое число байтов. Упакованный формат обычно используется при выполнении операций над десятичными числами.

99

97 :: 98 :: 99 :: Содержание


Содержание раздела