Мегаобучалка Главная | О нас | Обратная связь


Арифметические основы работы ЭВМ



2019-11-20 197 Обсуждений (0)
Арифметические основы работы ЭВМ 0.00 из 5.00 0 оценок




 

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

Таблица 3.1

Сложение Вычитание Умножение
0 + 0 = 0 0 – 0 = 0 0 ´ 0 = 0
0 + 1 = 1 1 – 0 = 1 0 ´ 1 = 0
1 + 0 = 1 1 – 1 = 0 1 ´ 0 = 0
1 + 1 = 10 10 – 1 = 1 1 ´ 1 = 1

 

Правила арифметики во всех позиционных СС аналогичны. В двоичной СС арифметическое сложение происходит по правилу сложения по модулю два с учетом переноса единицы в старший разряд (см. табл. 3.1).

Пример 1. Выполнить операцию арифметического сложения в двоичной системе счисления.

Решение.

Точками показаны переносы.

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

Следует заметить, что в реальных ЭВМ чаще всего используются 32-, 64-, 128-разрядные сетки (машинные слова). Однако для учебных целей при рассмотрении правил выполнения арифметических операций не будем обращать внимание на разрядность операндов (т. е. будем использовать разрядность, отличающуюся от разрядности реальных ЭВМ).

Пример 2. Выполнить операцию арифметического сложения двух вещественных чисел в двоичной системе счисления.

Решение.

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

Рассмотрим правило умножения многоразрядных двоичных чисел.

 

 


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

Пример 3. Перемножить в двоичной СС числа 7,5D и 5D.

Решение.

 

В рассмотренном примере второй разряд множителя равен нулю, поэтому второе частичное произведение также равно нулю.

 

 


 

Пример 4. Выполнить деление в двоичной СС десятичного числа 65D на число 5D.

Полученный результат 1101B = 13D свидетельствует о верности выполненной операции деления.

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

В ВТ применяют прямой, обратный и дополнительный коды.

Прямой двоичный код Рпр (х) — это такое представление двоичного числа х, при котором знак «+» кодируется нулем в старшем разряде числа, а знак «–» — единицей. При этом старший разряд называется знаковым.

Например, числа +5D и –5D, представленные в прямом четырехразрядном коде, выглядят так: +5D = 0'101B; –5D = 1'101B. Здесь апострофом условно (для удобства определения знака) отделены знаковые разряды.

Обратный код Робр (х) получается из прямого кода по следующему правилу:

 

 


Из приведенного выражения видно, что обратный код для положительных чисел совпадает с прямым кодом. Чтобы представить отрицательное двоичное число в обратном коде, нужно поставить в знаковом разряде 1, во всех значащих разрядах заменить 1 на 0, а 0 на 1. Такая операция называется инверсией и обозначается горизонтальной чертой над инвертируемым выражением.

 Пример 5. Получить обратный код для числа х = –11D.

Решение.

Рпр (х) = (1'1011)2

Робр (х) = (1'0100)2.

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

Дополнительный код Рдоп ) образуется следующим образом:

 

 

 


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

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

Пример 6. Получить дополнительный код для числа х = –13D.

Решение.

Рпр (х) = ( 1'1101 )2 прямой код

Робр (х) = ( 1'0010 )2 обратный код

Рдоп ) = ( 1'0011)2 дополнительный код.

В табл. 2 представлены прямые, обратные и дополнительные коды чисел в диапазоне от –7D до +7D.


 

Таблица 3.2

Десятичное число х Рпр (х) Робр (х) Рдоп )
0 0'000 0'000 0'000
1 0'001 0'001 0'001
2 0'010 0'010 0'010
3 0'011 0'011 0'011
4 0'100 0'100 0'100
5 0'101 0'101 0'101
6 0'110 0'110 0'110
7 0'111 0'111 0'111
-0 1'000 1'111
-1 1'001 1'110 1'111
-2 1'010 1'101 1'110
-3 1'011 1'100 1'101
-4 1'100 1'011 1'100
-5 1'101 1'010 1'011
-6 1'110 1'001 1'010
-7 1'111 1'000 1'001

 

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

 


Напомним, что алгебраическое сложение — это сложение, в котором могут участвовать как положительные, так и отрицательные числа.

 


Пример 7. Выполнить алгебраическое сложение с использованием дополнительного кода для чисел х1 = 7D и х2 = –3D.

Решение.

Необходимо найти сумму: y = x1 + x2.

Учитывая, что x1 > 0, это число нужно представить в прямом коде, а так как x2 < 0, то число x2 нужно перевести в дополнительный код.

P(y) = Рпр(x1) + Рдоп(x2).

Рпр (x1) = 0'111В

Рпр (x2) = 1'011B

Робр2) = 1'100B

Рдоп (x2) = 1'101B.

 

 

Так как результат положителен (в знаковом разряде P(y) — 0), значит, он представлен в прямом коде Рпр ( y ) =0'100B. После перевода двоичного числа в десятичную СС получим ответ: y = +4D.

Пример 8.

Выполнить алгебраическое сложение чисел х1 = 8D и х2 = –13D с использованием дополнительного кода.

Решение

Необходимо найти сумму: y = x1 + x2.

Число x1 нужно представить в прямом коде, а x2 — в дополнительном коде.

P(y) = Рпр(x1) + Рдоп(x2).

Рпр (x1) = 0'1000В

Рпр (x2) = 1'1101B

Робр2) = 1'0010B

Рдоп (x2) = 1'0011B.

 

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

Pдоп (y) = 1'1011B

к прямому коду Рпр (y) необходимо выполнить следующие преобразования:

Робр (y) = Рдоп (y) – 1 = 1'1011B – 1 = 1'1010B,

     
 


Рпр (y) = Робр (y) = 1'1010B = 1'0101B.

 

Переходя от двоичной СС к десятичной СС, получим ответ: y = –5D.

Пример 9. Выполнить алгебраическое сложение с использованием дополнительного кода для чисел х1 = – 6D и х2 = –17D.

Решение

Необходимо найти сумму: y = x1 + x2.

Числа x1 и x2 нужно представить в дополнительном коде.

P(y) = Рдоп(x1) + Рдоп(x2).

Рпр (x2) = 1'10001B

Робр2) = 1'01110B

Рдоп (x2) = 1'01111B

Рпр (x1) = 1'00110В

Робр1) = 1'11001B

Рдоп1) = 1'11010B

.

 

В знаковом разряде стоит единица, и, значит, результат получен в дополнительном коде. Для перехода от дополнительного кода Pдоп (y) = 1'01001B к прямому коду Рпр (y) необходимо выполнить следующие преобразования:

Робр (y) = Рдоп(y) – 1 = 1'01001B – 1 = 1'01000B,

     


Рпр(y) = Робр(y) = 1'01000B = 1'10111B.

 

Переходя от двоичной СС к десятичной СС, получим ответ: y = –23D.

 



2019-11-20 197 Обсуждений (0)
Арифметические основы работы ЭВМ 0.00 из 5.00 0 оценок









Обсуждение в статье: Арифметические основы работы ЭВМ

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (197)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)