- •Тема 1. Системы счисления
- •§1. Перевод чисел из системы счисления с основанием p в десятичную систему счисления
- •§2. Перевод десятичных чисел в систему счисления по основанию p
- •2.1. Перевод целых чисел
- •2.1. Перевод дробных чисел
- •§3. Перевод чисел в системах счисления с основаниями кратными двум
- •§4. Перевод чисел с произвольными основаниями
- •Задания для самостоятельного выполнения:
- •Рекомендации по выполнению заданий для самостоятельного решения
- •Тема 2. Представление чисел в прямом, обратном и дополнительных кодах
- •Прямой код
- •Обратный код
- •Дополнительный код
- •Переполнение разрядной сетки
- •Сложение чисел в прямом, обратном и дополнительном кодах с проверкой в десятичной системе счисления
- •Задания для самостоятельного выполнения:
- •Тема 3. Алгоритмизация.
- •§4.1. Линейная структура алгоритма
- •§4.2. Структура алгоритма «цикл с предусловием»
- •§4.3. Структура алгоритма «цикл с постусловием»
- •§4.4. Структура алгоритма ветвление
- •§4.5. Структура алгоритма сокращенное ветвление
- •§4.6. Структура алгоритма множественный выбор
- •Тема 5. Смешанные структуры алгоритмов.
- •Задания для самостоятельного выполнения:
Сложение чисел в прямом, обратном и дополнительном кодах с проверкой в десятичной системе счисления
Сложение двух многозначных двоичных чисел производится «столбиком». Выравниваем два числа по запятой, а затем складываем соответствующие разряды этих чисел. При сложении двух единиц в соответствующем разряде суммы записываем ноль и единицу переносим в соседний старший разряд.
При сложении двух чисел в обратном коде, при условиях, что В > 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=4, m=0
Для вычисления необходимо А и В перевести в прямой код. Из исходных данных видно, что число А – положительное, поэтому [А]пр=[А]обр=[А]доп, а число В - отрицательное, поэтому его необходимо перевести в обратный код (по правилам перевода обратного кода):
[А]пр= 0. 0101 [А]пр= [А]обр
[В]пр=1.0011 [В]обр=1.1100
Выполним сложение А и В.
[А]обр |
= 0.0101 |
+ |
|
[В]обр |
=1.1100 |
[С]обр |
= 0.0001 |
|
+ 1 |
[С]обр |
=0.0010 |
В данном примере единица переноса старшего разряда суммируется с младшим разрядом ранее полученной суммы, т.к. вычисления производятся в обратном коде.
Проверка: А=+5, В=-3, в результате должно получиться С= +2,
т.е. +5 + -3 = +2.
В результате сложения получилось положительное число, что подтверждает «0» в знаковом разряде, поэтому для того, чтобы проверить правильность полученного результата необходимо преобразовать полученное число [С]обр в десятичное число:
[С]обр=[С]пр
[С]пр= 0.00102=+210.
Ответ: [С]обр= 0.0010
Пример№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
