Здавалка
Главная | Обратная связь

Сложение чисел в прямом, обратном и дополнительном кодах с проверкой в десятичной системе счисления



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

Рис.2.2. Таблицы сложения и умножения в двоичном коде.

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

При сложении двух чисел в обратном коде, при условиях, что В > 0, C < 0 и B > 0 , C < 0 необходимо выполнять циклический перенос (при появлении единицы переноса из знакового разряда ее следует циклически перенести в младший разряд и просуммировать с полученным ранее результатом).

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

Пример№6

Вычислить С = А + В в обратном коде с проверкой в десятичной системе счисления. А=+310, В=-510; n=4, m=0.

Для вычисления необходимо А и В перевести в прямой код.

Из исходных данных видно, что число А – положительное, а число В - отрицательное, поэтому число В необходимо преобразовать в обратный код (по правилам перевода обратного кода):

[А]пр= 0.0011 [А]пр=[А]обр

[В]пр=1.0101 [В]обр=1.1010

Выполним сложение А и В.

Проверка: А=+310, В=-510, в результате должно получиться С= - 2 ,

т.е. +3(10) + (-5)10 = -2(10).

Для проверки результата сложения необходимо из обратного кода числа С перевести в прямой код числа С, так как в результате получилось отрицательное число, что подтверждает «1» в знаковом разряде.

Поэтому [С]обр =1.1101, [С]пр= 1.0010=-2(10),

Ответ: [С]обр =1.1101

Пример№7

Вычислить С = А + В в обратном коде с проверкой в десятичной системе счисления. А=+510, В=-310, n=3, m=0

Для вычисления необходимо А и В перевести в прямой код. Из исходных данных видно, что число А – положительное, поэтому [А]пр=[А]обр=[А]доп, ачисло В - отрицательное, поэтому его необходимо перевести в обратный код (по правилам перевода обратного кода):

[А]пр= 0.101 [А]пр= [А]обр

[В]пр=1.011 [В]обр=1.100

Выполним сложение А и В.

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

Проверка: А=+5, В=-3, в результате должно получиться С= +2,

т.е. +5 + -3 = +2.

В результате сложения получилось положительное число, что подтверждает «0» в знаковом разряде, поэтому для того, чтобы проверить правильность полученного результата необходимо преобразовать полученное число [С]обр в десятичное число:

[С]обр=[С]пр

[С]пр= 0.0102=+210.

Ответ: [С]обр= 0.010

Пример№8

Вычислить D = B + C в обратном коде с проверкой в десятичной системе счисления. В = - 210,С = - 510, n = 3, m = 0

Для вычисления необходимо C и В перевести в прямой код.

Из исходных данных видно, что С и В отрицательные, поэтому их необходимо сначала перевести в обратный код (по правилам перевода обратного кода):

[В]пр=1.010 [В]обр=1.101

[С]пр=1.101 [С]обр=1.010

Выполним сложениеВ и С.

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

Проверка: В = - 2,С = - 5, в результате должно получиться D= -7,

т.е. -2 + (-5) = -7. Для проверки результата сложения необходимо из обратного кода числа D перевести в прямой код числа D, так как в результате получилось отрицательное число, что подтверждает «1» в знаковом разряде.

Поэтому [D]обр =1.000 [D]пр = 1.111 = - 7

Ответ: [D]обр =1.000

Пример №9

Вычислить С = А + В в обратном коде с проверкой в десятичной системе счисления. А=-510, В=+1010, n = 4, m = 0.

Для вычисления необходимо А и В перевести в прямой код.

Из исходных данных видно, что В – положительное, поэтому [В]пр=[В]обр=[В]доп, а число А - отрицательное, поэтому его необходимо перевести в обратный код (по правилам перевода обратного кода):

[А]пр= 1.0101 [А]обр=1.1010

[В]пр=0.1010 [В]пр=[В]обр=[В]доп

Выполним сложениеА и В.

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

Проверка: А=-5, В=+10, в результате должно получиться С= +5,

т.е. -5(10) + 1010 = +5(10).

В результате сложения получилось положительное число, что подтверждает «0» в знаковом разряде, поэтому для того, чтобы проверить правильность полученного результата необходимо преобразовать полученное число [С]обр в десятичное число: [С]обр =[С]пр

[С]пр= 0.0101=+5(10),

Ответ: [С]обр =0.0101

Пример №10

Вычислить С = А + В в обратном коде с проверкой в десятичной системе счисления. А=-510, В=-1010, n = 4, m = 0.

Для вычисления необходимо А и В перевести в прямой код. Из исходных данных видно, что А и В отрицательные, поэтому их необходимо перевести в обратный код (по правилам перевода обратного кода):

[А]пр= 1.0101 [А]обр=1.1010

[В]пр=1.1010 [В]обр=1.0101

Выполним сложениеА и В.

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

Проверка: А=-510, В=-1010, в результате должно получиться С= -15, т.е.

-5 + (-10) = -15.

Для проверки результата сложения необходимо из обратного кода числа С перевести в прямой код числа С, так как в результате получилось отрицательное число, что подтверждает «1» в знаковом разряде.

[С]обр= 1.0000 [С]пр= 1.11112=-1510,

Ответ: [С]доп =1.10001

Пример №11

Вычислить С = А + В в дополнительном коде с проверкой в десятичной системе счисления. А=+710, В=-810, n = 4, m = 0.

Для вычисления необходимо А и В перевести в прямой код. Из исходных данных видно, что А – положительное, поэтому [А]пр=[А]обр=[А]доп, а число В - отрицательное, поэтому его необходимо перевести в обратный, а затем в дополнительный коды (по правилам перевода обратного и дополнительного кода):

[А]пр= 0.0111 [А]пр=[А]обр=[А]доп

[В]пр=1.1000 [В]обр=1.0111 [В]доп=1.1000

Выполним сложение А и В.

Проверка: А=+7, В=-8, в результате должно получиться С= -1,

т.е. +710 + (-8)10 = -110.

Для проверки результата сложения необходимо из дополнительного кода числа С перевести в прямой код числа С, так как в результате получилось отрицательное число, что подтверждает «1» в знаковом разряде.

Поэтому [С]доп= 1.1111 [С]обр =1.0000 [С]пр =1.0001=-110

Ответ: [С]доп =1.1111

Пример №12

Вычислить С = А + В в дополнительном коде с проверкой в десятичной системе счисления. А=-710, В=-810, n = 4, m = 0.

Для вычисления необходимо А и В перевести в прямой код. Из исходных данных видно, что числа А и В отрицательные, поэтому их необходимо сначала перевести в обратный код, а затем в дополнительный (по правилам перевода обратного и дополнительного кодов):

[А]пр= 1.0111 [А]обр=1.1000 [А]доп=1.1001

[В]пр=1.1000 [В]обр=1.0111 [В]доп=1.1000

Выполним сложениеА и В.

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

Проверка: А=-7, В=-8, в результате должно получиться С= -15,

т.е. -7(10) + (-8)10 = -15(10).

Для проверки результата сложения необходимо из дополнительного кода числа С перевести в прямой код числа С, так как в результате получилось отрицательное число, что подтверждает «1» в знаковом разряде.

Поэтому [С]доп = 1.0001 [С]обр= 1.1110 [С]пр= 1.1111=-15(10)

Ответ: [С]доп = 1.0001

Пример №13

Вычислить С = А + В в дополнительном коде с проверкой в десятичной системе счисления. А=-710, В=+810, n = 4, m = 0.

Из исходных данных видно, что В – положительное, поэтому [В]пр=[В]обр=[В]доп,ачисло А - отрицательное, поэтому его необходимо перевести в обратный, а затем в дополнительный коды (по правилам перевода обратного и дополнительного кода):

[А]пр= 1.0111 [А]обр=1.1000 [А]доп=1.1001

[В]пр=0.1000 [В]обр=0.1000 [В]доп=0.1000

Выполним сложениеА и В.

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

Проверка: А=-7, В=+8, в результате должно получиться С= +1,

т.е. -7(10) +810 = +1(10).

В результате сложения получилось положительное число, что подтверждает «0» в знаковом разряде, поэтому для того, чтобы проверить правильность полученного результата необходимо преобразовать полученное число [С]доп в десятичное число: [С]доп =[С]обр =[С]пр

[С]пр= 0.0001 = +1(10)

Ответ: [С]доп =0.0001

Задания для самостоятельного выполнения:

Выполнить операции сложения в дополнительном коде, с проверкой в десятичной системе счисления, для следующих исходных данных (n=8, m=0):

1. 27 + (- 17)

2. (-10) + 15

3. (- 17) +45

4. (- 13) + (- 7)

5. (- 8) + (- 6)

6. (- 5) + (- 9)

7. (- 10) + (-17)

8. 36 + (- 12)

9. (- 5) + (- 3)

10. (- 41) + (- 4)

11. 21 + (- 17)

12. (-11) + 15

13. (- 27) +45

14. (- 14) + (- 7)

15. (- 44) + (- 6)

16. (- 50) + (- 9)

17. (- 100) + (-17)

18. 34 + (- 12)

19. (- 15) + (- 3)

20. (- 17) + (- 4)

 

 








©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.