Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika_-_posobie_dlya_studentov_grupp_AUZ.....docx
Скачиваний:
22
Добавлен:
15.11.2018
Размер:
232.81 Кб
Скачать

Задание 5: «Представление целых чисел в эвм. Арифметические операции над целыми числами. Сложение и вычитание»

Что нужно знать:

  • перевод чисел из десятичной в двоичную систему счисления

  • представление целых чисел в ЭВМ: если целое число со знаком занимает в памяти один байт, то первый бит числа - это знаковый разряд числа, оставшиеся 7 бит занимает абсолютное представление числа в двоичном коде

  • для целых чисел со знаком применяются три формы записи (кодирования): прямой код, обратный код и дополнительный код

  • положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково - двоичными кодами с цифрой 0 в знаковом разряде, например для А10=+5

Апкокдк=0:0000101,

здесь «:» разделяет знаковый и цифровые разряды числа

  • при записи прямого кода отрицательных чисел в знаковый разряд помещается цифра 1, а в разряды цифровой части числа — двоичный код его абсолютной величины, например для А10=-5

Апк=1:0000101

  • обратный код отрицательных чисел получается инвертированием всех цифр прямого кода числа, исключая знаковый разряд: нули заменяются единицами, а единицы — нулями, например для А10=-5

Аок=1:1111010

  • дополнительный код отрицательного числа образуется прибавлением единицы к младшему разряду обратного кода, например для А10=-5

Адк=1:1111011

  • при выполнении операции сложения числа, записанные в прямом, обратном или дополнительном коде, складываются по общим правилам сложения двоичных чисел, причем знаковые разряды участвуют в сложении так же, как и значащие информационные. Если при сложении чисел в обратном коде образуется перенос из знакового разряда, то к младшему числовому разряду добавляется единица. Если такой перенос возникает при использовании дополнительного кода, то единица переноса теряется. Знак результата операции сложения формируется автоматически, результат представляется в том коде, в котором представлены исходные слагаемые

  • операция вычитания приводится к операции сложения следующим образом (при А>=0 и B>=0):

Операция

Необходимое преобразование

А-В

А+(-В)

-А+В

(-А)+В

-А-В

(-А)+(-В)

Скобки в представленных выражениях указывают на замену операции вычитания операцией сложения с обратным или дополнительным кодом соответствующего числа

Пример:

Дано: А10=31 и В10=23. Вычислить:

1) С=А+В;

2) D=А-В;

3) E=–А+В;

4) F=–А-В.

Результаты представить в прямом, обратном и дополнительном кодах.

Общий подход:

  1. Перевести оба числа в двоичную систему счисления,

  2. Для выполнения операции сложения представить числа в прямом коде, а для выполнения операции вычитания – в обратном или дополнительном коде,

  3. Выполнить необходимые вычисления.

Решение:

  1. Переводим исходные данные в двоичную систему счисления:

А10=31 А2=11111

В10=23 В2=10111

  1. Запишем исходные данные в прямом, обратном и дополнительном кодах. Положительные числа в прямом, обратном и дополнительном коде записываются одинаково – 0 в знаковом разряде, далее двоичный код числа (при переводе не забываем про разрядность чисел – они занимают в памяти 1 байт, т.е. под число отводится 8 разрядов):

АПКОКДК=0:0011111

ВПКОКДК=0:0010111

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

При записи отрицательного числа в прямом коде помещаем 1 в знаковый разряд:

ПК==1:0011111 -ВПК=1:0010111

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

ОК==1:1100000 -ВОК=1:1101000

Для получения дополнительного кода отрицательного числа прибавляем к числу, записанному в обратном коде, единицу:

ДК==1:1100001 -ВДК=1:1101001

4) Теперь выполним необходимые вычисления:

СПКОКДКПКПК

0:0011111

0:0010111

0:0110110

СПКОКДК=0:0110110

Выполним проверку полученного результата: С10=31+23=54, это С2=110110. Результат получен правильно.

2) Вычисляем D=А-В=А+(-В), т.е. от операции вычитания переходим к операции сложения. Отрицательные значения обрабатываются только в обратном и дополнительном кодах.

АОКДК=0:0011111

ОК=1:1101000 -ВДК=1:1101001

DОКОК+(-ВОК) DДКДК+(-ВДК)

0:0011111 0:0011111

1:1101000 1:1101001

0:0000111 0:0001000 – единица переноса игнорируется

1 - единица переноса из знакового разряда

0:0001000

Получили DОК=DДК=0:0001000. Т.к, получилось положительное число, то обратный и дополнительный код совпадают.

Выполним проверку полученного результата: D10=31-23=8, это D2=1000. Результат получен правильно.

  1. Вычисляем E=(–А)+В, от операции вычитания переходим к операции сложения. Отрицательные значения обрабатываются только в обратном и дополнительном кодах.

ОК=1:1100000

ДК=1:1100001

ВПКОКДК=0:0010111

EОК=(–АОК)+ВОК EДК=(–АДК)+ВДК

1:1100000 1:1100001

0:0010111 0:0010111

1:1110111 1:1111000

Получили

EОК=1:1110111

EДК=1:1111000

Выполним проверку полученного результата Е10=-31+23=-8

E2=-1000

EПК=1:0001000

EОК=1:1110111

EДК=1:1111000

Результат получен правильно.

  1. F=(-А)+(-В). От операции вычитания переходим к операции сложения. Отрицательные значения обрабатываются только в обратном и дополнительном кодах.

ОК==1:1100000 -ВОК=1:1101000

ДК==1:1100001 -ВДК=1:1101001

FОК=(–АОК)+(-ВОК) FДК=(–АДК)+(-ВДК)

1:1100000 1:1100001

1:1101000 1:1101001

1:1001000 1:1001010 – единица переноса

………….1 - единица переноса игнорируется

1:1001001

Получили

FОК=1:1001001

FДК=1:1001010

Выполним проверку полученного результата F10=-31-23=-54

F2=-110110

FПК=1:0110110

FОК=1:1001001

FДК=1:1001010

Результат получен правильно.

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