Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сумирование обратный код (RUS).doc
Скачиваний:
0
Добавлен:
22.11.2019
Размер:
92.16 Кб
Скачать

Цель работы: ознакомление с выполнением арифметических операций в

компьютере и их моделирование.

Короткие теоретические сведения

Из курса ЭВМ мы знаем, что числа в компьютере представляются в различных кодированиях:

  • Прямой код;

  • Обратный код;

  • Дополнительный код.

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

Создания прямого кода:

  • Знак числа: - 0 отвечает «+»

- 1 отвечает «-»

  • Порядок совпадает с самым числом:

310 = 00112

Обратный код - используется для кодирования отрицательных чисел.

Создания обратного кода:

  • Знак числа: - 0 отвечает «+»

- 1 отвечает «-»

  • Значащая часть числа инвертируется:

310 = 11002

Дополнительный код - используется для кодирования отрицательных чисел.

Правила записи дополнительного кода совпадают с правилами для обратного кода. Данные коды отличаются методом применения:

- при действии происходит 11002 + 1.

Также есть модифицированный код. Его содержание лежит в том, что под мантиссу отведено два бита. С помощью этого мы можем контролировать переполнение:

  • 11. 00112 - -310;

  • 00. 00112 - 310;

  • 01. 00112 - переполнение;

  • 10. 00112 - Переполнение.

Моделирование сложения в обратном коде

  1. Алгоритм:

+ -

+ -

0 1 10 00 11

  1. Текст программы:

Ввести Р1 'Вводим первое число

Ввести Р2 'Вводим второе число

Печать Р1 'Печатаем первое число

Печать Р2 'Печатаем второе число

'Если первое число отрицательное - инвертируем его

Если Р1(6:5) = 3 Операция Р1(4:0) = Р1(4:0)~

'Если второе число отрицательное-инвертируем его

Если Р2(6:5) = 3 Операция Р2(4:0) = Р2(4:0)~

Печать Р1 'Печатаем первое число

Печать Р2 'Печатаем второе число

Операция Р3 = Р1

Операция Р3 + Р2 ' складываем числа

' если есть 1 за разрядной сеткой,

' то +1 к числу

Если Р3(7) = 1 Операция Р3 + 1

' Проверка на переполнение

Если Р3(6:5) = 1 Идти_К 1

Если Р3(6:5) = 2 Идти_К 1

' если результат отрицательный инвертируем

Если Р3(6:5) = 3 Операция Р3(4:0) = Р3(4:0)~

Печать Р3 ' Печать ответа

Идти_К 2

1 Печать "Переполнение"

2 Конец

  1. Пример работы программы:

  • Складываем 12 и 15 = 27

╔═════════════════════════════════ Результаты ═════════════════════════════════╗

║ 2-й код 16-й код 10-й код ║

║Р001 00001100 0C 00000000012 ☺

║Р002 00001111 0F 00000000015 ▓

║Р001 00001100 0C 00000000012 ▓

║Р002 00001111 0F 00000000015 ↓

║Р003 00011011 1B 00000000027 ☺

╚══════════════════════════════════════════════════════════════════════════════╝

  • Складываем -12 и 15 = 3

╔═════════════════════════════════ Результаты ═════════════════════════════════╗

║ 2-й код 16-й код 10-й код ║

║Р001 01101100 6C 00000000108 ☺

║Р002 00001111 0F 00000000015 ▓

║Р001 01110011 73 00000000115 ▓

║Р002 00001111 0F 00000000015 ↓

║Р003 10000011 83 00000000131 ☺

╚══════════════════════════════════════════════════════════════════════════════╝

  • Складываем -12 и -15 = -27

╔═════════════════════════════════ Результаты ═════════════════════════════════╗

║ 2-й код 16-й код 10-й код ║

║Р001 01101100 6C 00000000108 ☺

║Р002 01101111 6F 00000000111 ▓

║Р001 01110011 73 00000000115 ▓

║Р002 01110000 70 00000000112 ↓

║Р003 11111011 E4 00000000228 ☺

╚══════════════════════════════════════════════════════════════════════════════╝

  • Складываем 28 и 4 состоится переполнение

╔═════════════════════════════════ Результаты ═════════════════════════════════╗

║ 2-й код 16-й код 10-й код ║

║Р001 00011100 1C 00000000028 ☺

║Р002 00000100 04 00000000004 ▓

║Р001 00011100 1C 00000000028 ▓

║Р002 00000100 04 00000000004 ↓

║Переполнение ☺

╚══════════════════════════════════════════════════════════════════════════════╝

Моделирование сложения в дополнительном коде