Бройдо В.Л., Ильина О.П. Архитектура ЭВМ и систем (2006) (1186249), страница 18
Текст из файла (страница 18)
Прочие системы счисления Кроме рассмотренных выше систем счисления, применяемых внутри компьютера, программисты и пользователи часто используют при работе с компьютерами также двоично-десятичную и шестнадцатеричную системы. Двоично-десятичная система счисления Двоично-десятичная сисгпема счисления получила большое распространение в современных компьютерах из-за легкости перевода в десятичную систему и обратна. Она используется там, где основное внимание уделяется не простоте технического построения машины, а удобству работы пользователя.
В этой системе счисления все десятичные цифры отдельно кодируются четырьмя двоичными цифрами и в таком виде записываются последовательно друг за другом. Двоично-десятичная система не экономична с точки зрения реализации технического построения машины (примерно на 20;4 увеличивается требуемое оборудование), но очень удобна при подготовке задач и при программировании. В двоично-десятичной системе счисления основанием системы счисления является число 10, но каждая десятичная цифра (О, 1, ..., 9) изображается, то есть кодируется, двоичными цифрами. Для представления одной десятичной цифры используются четыре двоичных. Здесь, конечно, имеется избыточность, поскольку 4 двоичных цифры (или двоичная тегпрада) могут изобразить не 10, а 16 чисел, но это уже издержки производства в угоду удобству программирования. Существует целый ряд двоично-кодированных десятичных систем представления чисел, отличающихся тем, что определенным сочетаниям нулей и единиц внутри одной тетрады поставлены в соответствие те или иные значения десятичных цифр'.
В наиболее часто используемой естественной двоично-кодированной десятичной системе счисления веса двоичных разрядов внутри тетрады естественны, то есть 8, 4, 2, 1 (табл. 5.1). ' Различные более хитрые способы кодирования десятичных цифр внутри тетрзлы обусловлены избыточностью кодирования н применяются лля автоматического обнаруження ошибок н сбоев в вычислениях. 86 Глава с.
Представление информации в вычислительных машинах Таблица 5.1. Таблица двоичных кодов десятичных н шестнадцатеричных цифр Например, десятичное число 9703 в двоично-десятичной системе выглядит так: 1001011100000011. Шестнадцатеричная система счисления При программировании иногда используется шеплнадцатеричная систлема счисления, перевод чисел из которой в двоичную систему счисления весьма прост— он выполняется поразрядно (аналогично переводу из двоична-десятнчной системы). Для изображения цифр, ббльших 9, в шестнадцатеричной системе счисления применяются буквы А - 10, В - 11, С - 12, 1) - 13, Е - 14, Р - 15.
Например, шестнадцатеричное число г17В в двоичной системе выглядит так: 1111000101111011. Выполнение арифметических операций в компьютере Правила выполнения арифметических операций в двоичной системе счисления аналогичны правилам операций в десятичной системе счисления. Например: Прочие системы счисления Особенности выполнения операций над числами с плавающей запятой Следует кратко остановиться на выполнении операции над числами с плавающей запятой (точкой). При сложении (вычитании) чисел с одинаковыми порядками их мантиссы складываются (вычитаются), а результату присваивается порядок, общий для исходных чисел.
Если порядки исходных чисел разные, то сначала эти порядки выравниваются (число с меньшим порядком приводится к числу с большим порядком), затем выполняется операция сложения (вычитания) порядков. Если при выполнении операции сложения мантисс возникает переполнение, то сумма мантисс сдвигается вправо на один разряд, а порядок суммы увеличивается на 1. При умножении чисел с плавающей запятой их мантиссы перемножаются, а порядки складываются.
При делении чисел с плавающей запятой мантисса делимого делится на мантиссу делителя, а для получения порядка частного из порядка делимого вычитается порядок делителя. При этом если мантисса делимого больше мантиссы делителя, то мантисса частного окажется больше 1 (происходит переполнение) и ее следует сдвинуть на один разряд вправо, одновременно увеличив на единицу порядок частного.
Выполнение арифметических операций над числами, представленными в дополнительных кодах При выполнении арифметических операций в компьютере обычно применяются не простые, а модифицированные коды. Модифицированный код отличается от простого использованием для изображения знака числа двух разрядов. Второй знаковый разряд служит для автоматического обнаружения ситуации переполнения разрядной сетки: при отсутствии переполнения оба знаковых разряда должны иметь одинаковые цифры (нули или единицы), а при переполнении разрядной сетки цифры в них будут разные. При переполнении результат сдвигается вправо на один разряд. Сложение производится по обычным правилам сложения двоичных чисел: единица переноса, возникающая из старшего знакового разряда, просто отбрасывается.
Примеры сложения (запятая условно отделяет знаковый разряд от самого числа): Ы Х = -1101; У 1001. Результат сложения: 11,0011 + 00,1001 11,1100 (или -0100); СЗ Х - 1101; У = 1001. Результат сложения: 00,1101 + 00,1001 - 01,0110 (переполнение, после сдвига вправо получим 00,10110, или +10110); (:) Х - 1101; У = -1001.
Результат сложения: 00,1101 + 11,0111 - 100,0100 (или 00,0100); о Х = -1101; У- -1001. Результат сложения: 11,0011+ 11,0111 - 10,1010 (переполнение, после сдвига вправо получим 11,01010, или -10110). 88 Глава 5. Представление информации в вычислительных машинах Умножение чисел в дополнительных кодах осуществляется по обычным правилам умножения двоичных чисел. Единственной особенностью является то, что если сомножитель является отрицательным (знаковые разряды равны 11), то перед началом умножения следует приписать к нему слева столько единиц, сколько значащих разрядов присутствуют у другого сомножителя справа от запятой.
Результат (произведение) всегда получаем в дополнительном коде. ПРИМЕЧАНИЕ Добавление единиц слева перед отрицательным числом не изменяет его величины, так как перед положительным числом можно написать сколько угодно нулей, не изменяя вели- чины числа; наоборот, перед отрицательным числом (в дополнительном или обратном кодах) добавление лишних нулей недопустимо.
Примеры операции умножения: Х - 00,111 . 00,101 - 00,100011 00,111 х 00,101 Х - 00,111 11111,011 - 11,011101 00,111 х 11111,011 00111 00000 00111 00000 00000 00100011 0011011,010101 -+ 11,011101 Х - 11111,001 00,101 - 11,011101 11111,001 х 00,101 11111001 00000000 11111001 00000000 00000000 001011,011101 -+ 11,01101 001!1 00111 00000 00111 00111 00111 00111 00111 Х - 11111,001 11111,011 - 00,100011 11111,001 х 11111,011 11111001 11111001 00000000 11111001 11111001 11111001 11111001 11111001 1111010000,100011 -+ 00,100011 89 Особенности представления информации в ПК Особенности выполнения операций в обратных кодах Обратные коды следует складывать, как обычные двоичные числа, поступая со знаковыми разрядами, как с обычными разрядами, а если возникает единица пе- реноса из знакового разряда, ее следует прибавить к младшему разряду суммы кодов.
Последнее обстоятельство (возможное добавление 1 в младший разряд) увеличивает время выполнения операций в обратных кодах, поэтому в компью- тере чаще используются дополнительные коды. Выполнение арифметических операций в шестнадцатеричной системе счисления Арифметические операции в шестнадцатеричной системе в машине не выполня- ются. Операции сложения и вычитания иногда приходится выполнять при про- граммировании, например, при вычислении полных адресов ячеек памяти (при сложении и вычитании адресов сегмента, базы, индекса, смещения).
Правила их выполнения обычные для позиционной системы счисления. Примеры операции сложения: 5ВАС + 2А45 - 85Р1 А58 + 34С - 0А4 67851 + ВЕРА = 7374В Особенности представления информации в ПК Числовая информация внутри ПК кодируется в двоичной или в двоично-деся- тичной системах счисления; при вводе и выводе любой информации использу- ются специальные коды представления информации — коды АВСП, эти же коды применяются для кодирования буквенной и символьной информации и внутри ПК.
Для удобства работы введены следующие термины для обозначения совокупно- стей двоичных разрядов (см. табл. 5.2). Эти термины обычно используются в ка- честве единиц измерения объемов информации, хранимой или обрабатываемой в компьютере. Последовательность нескольких битов или байтов часто называют полем данньп. Биты в числе (в слове, в поле и т. п.) нумеруются справа налево, начиная с 0-го разряда. В ПК могут обрабатываться поля постоянной и переменной длины.
Поля постоянной длины: о слово — 2 байта; 0 двойное слово — 4 байта; о полуслово — 1 байт; (3 расширенное слово — 8 байтов. 90 Глава 5. Представление информации е вычислительных машинах Таблица 5.2. Двоичные совокупности Числа с фиксированной запятой чаще всего имеют формат слова и полуслова; числа с плавающей запятой — формат двойного и расширенного слова (математические сопроцессоры 1ВМ РС могут работать с 10-байтными словами). Поля переменной длины могут иметь любой размер от 0 до 255 байтов, но обязательно равный целому числу байтов. ПРИМЕР Структурно запись двоичного числа -11000001<п, равного десятичному -193<ма в разрядной сетке ПК, выглядит следующим образом (рис.
5.1, 5,2). Рис. 6.1. Число с фиксированной запятой е формате слово со знаком Рио. 5.2. Число с плавающей запятой е формате двойное слово Двоично-кодированные десятичные числа могут быть представлены в ПК полями переменной длины в так называемых упакованном (рис. 5.3) и распакованном форматах. В упакованном формате для каждой десятичной цифры отводится по 4 двоичных разряда (полбайта), при этом знак числа кодируется в крайнем правом полубайте числа (1100 — знак «ч.» и 1101 — знак ч †»).