Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inf_title.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
67.12 Кб
Скачать

14. Прямой код

Прямой код используется при вводе и выводе чисел, а также при сохранении чисел в памяти ЭВМ.

В прямом коде все разряды числа остаются неизменными. Например,

А (2) =1101 [A]п.к. = 0.1101; А (2) = - 0,1101 [A]п.к.= 1.1101

Прямой код используется при умножении чисел. Например,

С=А*В; А (2) =1011; B (2) = -1010;

Сначала вычисляем знаковые разряды путем сложения по модулю 2:

0

1

0

0

1

1

1

0

 ‑ обозначение операции «сложение по модулю 2».

Получаем 0+1=1. Таким образом, результат будет иметь знак в прямом коде 1, что отображает знак минус.

1011

х1010

10110

+ 10110

1101110

Результат: [C] пк. = 1.1101110 (2).

С (2) = - 1101110 = - (1*26+1*25+1*23+1*22+0*20) = - (64+32+8+4+2) = - 110(10)..

15. Обратный код

Вычитание в ЭВМ выполняется как операция сложения в обратном или дополнительном коде.

Если число А>0, то обратный код пишется как прямой: [A] обр.к. = [A] пк.

Если число А<0, то все разряды числа, кроме знакового, инвертируются. Операция инверсии выполняется по формуле:

b и= (q - 1) – b и.

Нуль в обратном коде в двоичной системе счисления имеет два изображения: “+0” = 0.00...0; “-0” = 1.11...1. В десятичной системе счисления нуль имеет такие изображения: “+0” = 0.00...0; “-0” = 9.99...9.

Переход от обратного кода к прямому осуществляется как и при переходе от прямого к обратному с помощью операции инверсии.

Рассмотрим пример сложения чисел с разными знаками в обратном коде в двоичной и десятичной системах счисления. С = А+(-В):

В двоичной системе счисления: В десятичной системе счисления:

А (2) = 1011; [A]обр.к.= 0.1011; 0.1011 А (10) = 11; [A]обр.к.= 0.11; 0.11

В (2)= - 101; [A] обр.к. = 1.1010; +1.1010 А (10) = -5; [A]обр.к. = 9.94; +9.94

(1)0.0101 (1)0.05

+ 1 + 1

0.0110 0.06

При сложении в обратном коде перенос из старшего (знакового) разряда прибавляется к младшему разряду суммы для получения верного результата.

Если число А>0, то дополнительный код пишется как прямой:

[A] д.к. = =[A]п.к.

Если число А<0, то все разряды числа, кроме знакового, инвертируются и к младшему разряду прибавляется 1.

Пример:

А (2) = - 1010; [A]д.к.= [A]обр.к. + 0.0001 = 1.0101+0.0001 = 1.0110.

16. Дополнительный код чисел в эвм

Переход от дополнительного кода к прямому осуществляется как и при переходе от прямого к дополнительному (сначала преобразуется в обратный код, а потом к этому числу добавляется 1 младшего разряда).

Рассмотрим примеры сложения чисел с разными знаками в дополнительном коде:

В двоичной системе счисления: В десятичной системе счисления:

А (2) = 1011; [A]д.к.= 0.1011; 0.1011 А (10) = 11; [A]о.к.= 0.11; 0.11

В (2)= - 101; [A] д.к. = 1.1011; +1.1011 А (10) = -5; [A]о.к. = 9.95; +9.95

(1)0.0110 (1)0.06

Результаты: А (2) = 110; А (10) = 6.

При сложении в дополнительном коде перенос из старшего (знакового) разряда отбрасывается для получения верного результата.

Переполнение разрядной сетки ведет к ошибке вычисления. Рассмотрим переполнения разрядной сетки на примерах:

1) А (2) = 1011,0111; [A]м.п.к. = 00.1011,0111

В (2) = 1101,1011; [B]м.п.к. = 00.1101,1011

01.1001,0010

2) А (2) = - 1011,0111; [A]м. д.к. = 11.0100,1001

В (2) = - 1101,1011 [B] м.д.к. = 11.0010,0101

10.0110,1110

При сложении чисел с одинаковыми знаками при переполнении разрядной сетки знак результата становится другим, что является признаком переполнения. Для выявления в ЭВМ признака переполнения применяется модифицированный дополнительный код, в котором под знак числа отводятся два двоичных разряда. При этом знак “+” отображается как 00, а знак “-” ‑ 11. При переполнении знаки результата приобретают вид 01 (при сложении положительных чисел ‑ А>0) и 10 (при сложении отрицательных чисел ‑ А<0)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]