13-16
13. Разрядная сетка– множество двоичных разрядов, выделяемых в памяти для изображения чисел(зависит от разрядности процессора).
Понятие переполнения Р.С - в ЭВМ количество разрядов, используемых для представления чисел, ограничено. Поэтому при сложении двух чисел с одинаковыми знаками их сумма может оказаться больше по модулю, чем максимальное число, которое может быть записано при заданном количестве разрядов и результат сложения окажется неверным.
Машинный ноль - числовое значение с таким отрицательным порядком, которое воспринимается машиной как ноль.
14.
Прямой код - образуется при записи числа в двоичной системе. Нужен для работы с положительными и отрицательными числами. Не удобен в реализации схемотехники, т.к. требуется отдельная архитектура для вычисления суммы и разности, а также контроль переполнения. Добавляется знаковый разряд, 0 для положительных чисел, 1 для отрицательных, данный разряд на бумаге отделяется точкой.
Примеры перевода:
x1=10101-[x1]пр=010101
x2=-11101-[x2]пр=111101
x3=0,101-[x3]пр=0,101
x4=-0,111-[x4]пр=1,111
Обратный код - необходим, чтобы сэкономить аппаратуру, позволяя выполнять и сложение, и вычитание на одной аппаратуре. Представление положительных и отрицательных чисел в обратном коде различается! Положительные числа в обратном коде совпадают с их представлением в прямом коде. Отрицательные числа представляют собой инвертированный прямой код числа: все нули меняются на единицы, а единицы – на нули, в знаковый разряд записывается единица. Модуль обратного кода N-разрядного двоичного числа дополняется до максимального значения. Незначащие разряды заполняются значением знакового разряда. При вычислениях, единицу переполнения, уходящую в старший разряд, добавляют к младшему разряду.
Примеры перевода:
x1=10101-[x1]обр=010101
x2=-11101-[x2]обр=100010
x3=0,101-[x3]обр=0,101
x4=-0,111-[x4]обр=1,000
Дополнительный код числа, имеет такое же назначение, как и обратный код числа. Формируется по следующим правилам: положительные числа в дополнительном коде выглядят также как и в обратном и в прямом коде, т.е. не изменяются. Отрицательные числа кодируются следующим образом: к обратному коду отрицательного числа (к младшему разряду) добавляется 1, по правилу двоичной арифметики.
Примеры перевода:
x1=10101-[x1]доп=010101
x2=-11101-[x2]обр=100010+1-[x2]доп=100011
x3=0,101-[x3]доп=0,101
x4=-0,111-[x4]обр=1,000+1-[x4]доп=1,001
Модифицированные коды - для придания однозначности записи числа могут использоваться модифицированный обратный и дополнительный коды. С точки зрения конструкции арифметического устройства, удобны для выявления переполнения разрядной сетки, которое может получиться при сложении чисел. Представление чисел в модифицированных кодах: 00 – Положительное число. 11 – Отрицательное число. 01 – Положительное число с переполнением. 10 – Отрицательное число с переполнением. Правила вычислений в модифицированных кодах совпадают с правилами вычисления в немодифицированных кодах.
15.
Сложение и вычитание в обратном коде:
1-й пример (для положительного результата)
Дано два числа:
100 = 0110 0100
-25 = — 0001 1001
Необходимо их сложить:
100 + (-25) = 100 — 25 = 75
1-й этап
Переводим число -25 в двоичное число в обратном коде:
25 = 0001 1001
-25= 1110 0110
и складываем два числа:
0110 0100 (100) + 1110 0110 (-25) = 1 0100 1010, отбрасываем старшую 1 (у нас получился лишний 9-й разряд — переполнение), = 0100 1010
2-й этап
Отброшенную в результате старшую единицу прибавляем к результату:
0100 1010 + 1 = 0100 1011 (знаковый бит =0, значит число положительное), что равно 75 в десятичной системе
2-й пример (для отрицательного результата)
Дано два числа:
5 = 0000 0101
-10 = — 0000 1010
Необходимо их сложить:
5 + (-10) = 5 — 10 = -5
1-й этап
Переводим число -10 в двоичное число в обратном коде:
10 = 0000 1010
-10= 1111 0101
и складываем два числа:
0000 0101 (5) + 1111 0101 (-10) = 1111 1010 (знаковый бит =1, значит число отрицательное)
2-й этап
Раз результат получился отрицательный, значит число представлено в обратном коде.
Переводим результат в прямой код (путем инвертирования значения, знаковый бит не трогаем):
1111 1010 —-> 1000 0101
Проверяем:
1000 0101 = — 0000 0101 = -5
Сложение и вычитание в дополнительном коде:
Дано: необходимо сложить два числа -10 и 5
-10 + 5 = -5
Решение:
5 = 0000 0101
-10 = 1111 0110 (в дополнительном коде)
Складываем:
1111 0110 + 0000 0101 = 1111 1011, что соответствует числу -5 в дополнительном коде
16. Код со смещением
Этот код обычно используется для представления целых чисел, задающих порядки чисел с плавающей точкой.
Алгоритм проведения операций:
Сложение/вычитание:
1. Выравниваем порядки.
2. Складываем/вычитаем.
3. Нормализуем.