13-16

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. Нормализуем.




Report Page