Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Правила недесятичной арифметики



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

Сложение трех однозначных двоичных чисел производится по следующим правилам:

(0)2 + (0)2 + (0)2 = (0)2,

(1)2 + (0)2 + (0)2 = (1)2,

(0)2+ (1)2 + (0)2 = (1)2,

(0)2 + (0)2 + (1)2 =(1)2

(1)2 + (1)2 + (0)2 = (10)2,

(1)2 + (0)2 + (1)2 = (10)2,

(0)2+ (1)2 + (1)2 = (10)2,

(1)2 + (1)2 + (1)2 =(11)2.

На основании этих равенств производится сложение многозначных двоичных чисел. Рассмотрим следующий пример:

 

          единицы переноса
  (1 1)2   первое слагаемое
      (1 1)2   второе слагаемое
  (1 0)2    

 

Сложение начинают с разряда единиц (1)2 + (1)2 = (10)2. Ноль записывают под чертой, а единицу переносят в следующий раз­ряд — разряд двоек (надписывают сверху). Переходят к разряду двоек: (1)2 + (0)2 + (1)2 = (10)2. Ноль записывают, а единицу перено­сят в разряд четверок. Переходят к разряду четверок: (1)2 + (1)2 + (0)2 = (10)2. Ноль записывают, а единицу переносят в разряд восьмерок. Так, переходя от разряда к разряду (справа налево), постепенно получают все цифры суммы. В десятичной системе счис­ления указанный пример имеет вид: (341)10 + (П5)10 = (456)10.

При сложении двух восьмеричных однозначных чисел пользу­ются табл. 1.

 

+

 

Пример сложения двух восьмеричных чисел:

        единицы переноса
  (3 7)8   первое слагаемое
  (7 5)8   второе слагаемое
(1 4)8    

 

 

 

 

Сложение начинают с разряда единиц: (7)8 + (5)8 = (14)8. Запи­сывают цифру 4 под чертой, а единицу переносят в следующий разряд — разряд восьмерок. Переходят к разряду восьмерок: (1)8 + (4)8 + (4)8 = (5)8 + (4)8 = (11)8.

Одну единицу записывают, а другую переносят в следующий разряд. Переходя последовательно от разряда к разряду, опреде­ляют сумму (12514)8.

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

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

В вычислительной технике операции вычитания обычно заме­няются операциями сложения. Рассмотрим пример такой замены. Вместо того чтобы из числа 85 вычитать число 37, к числу 85 при­бавляется число 63 = 100 - 37 (дополнительное к 37) и от резуль­тата 148 отнимается единица в старшем разряде. Получается число 48, которое является искомой разностью.

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

В вычислительной технике при использовании двоичной сис­темы счисления крайний левый разряд служит для записи знака числа. Для положительного числа в этот разряд записывается 0, а для отрицательного — 1. Записанные таким образом двоичные числа будем называть записанными в прямом коде.

Рассмотрим составление дополнительного кода к прямому коду отрицательного числа.

Дополнительный код отрицательных двоичных чисел формируется по следующему правилу. Сначала цифры всех раз­рядов кроме знакового инвертируют (вместо 0 записывают 1, а вместо 1 — 0) и в младший разряд добавляют еди­ницу. Если в младшем разряде уже стоит единица, то при этом приходится изменять цифру в следующем, а, возможно, и в более старших разрядах.

Например, при вычитании из числа 10110 числа 01101 умень­шаемое представляют как положительное число в прямом коде 010110, а вычитаемое — как отрицательное число, прямой код которого 101101 (полужирным шрифтом выделены цифры знако­вого разряда). Определяют дополнительный код вычитаемого. Сна­чала инвертируют цифры всех разрядов, кроме знакового (резуль­тат 110010), затем прибавляют единицу в младший разряд (110011). Выполняют операцию сложения уменьшаемого (в прямом коде) с вычитаемым (в дополнительном коде):

010110

+

110011

001001.

Число 01001 и есть результат вычитания, полученный в пря­мом коде. При сложении цифры знаковых разрядов складывают с отбрасыванием возникающего из этого разряда переноса. В дан­ном примере в результате вычитания получилось положительное число, поскольку в знаковом разряде стоит 0. Это естественно, так как уменьшаемое больше вычитаемого. Если же из меньшего числа вычитать большее, то получается отрицательное число.

Убедимся в этом на примере, из числа 01101 (в прямом коде 001101) вычтем 10110. Для этого определим дополнительный код отрицательного числа 110110: сначала инвертируем цифры всех разрядов, кроме знакового (101001), потом добавим единицу в младший разряд (101010). Выполним сложение уменьшаемого в прямом коде и вычитаемого в дополнительном коде:

001101

+

101010

110111.

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

Правильность вычислений проверим на десятичных числах: (10110)2 = (22)10; (01101)2 = (13)10; (01001)2 = (9)10; 22 - 13 = 9; 13 - 22 = -9.

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

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

При умножении вручную на бумаге мы привыкли начинать с младшей цифры второго сомножителя. При этом результат умно­жения на цифру следующего разряда записываем левее предыду­щего результата на один разряд, т.е. тем самым производим сдвиг влево. Результаты умножения первого сомножителя на каждую цифру второго сомножителя называют частичными произведени­ями или промежуточными суммами. Получающиеся в результате умножения и сдвига частичные произведения после суммирова­ния дают полное произведение. Особенность умножения двоич­ных чисел состоит в том, что частичное произведение может быть либо сдвинутым на соответствующее число разрядов множимым, если соответствующая цифра множителя равна 1, либо нулем, если соответствующая цифра множителя равна 0.

 

Рассмотрим пример:

 

                     
          множимое
            множитель
          первое частичное произведение
          второе частичное произведение
          третье частичное произведение
          четвертое частичное произведение
  произведение

 

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

Можно привести следующее обоснование тому, что умноже­ние сводится к сдвигу и сложению. Пусть надо перемножить 101101 и 101101.

Запишем это в такой форме: 101101 • 101101 = 101101(100000 + 1000 + 100 + 1) = 10110100000 + 101101000 + 10110100 + 101101.

Таким образом, умножение на 100000 свелось к приписыва­нию пяти нулей (т.е. сдвигу на пять разрядов влево), на 1000 — трех (сдвиг на три разряда), на 100 — двух (сдвиг на два разряда). Иными словами, из первого сомножителя формируется столько частичных слагаемых, сколько единиц имеется во втором со­множителе. Сдвиг производится на столько разрядов влево, на каком месте (в каком разряде) находится соответствующая еди­ница, минус один. Например, если единица есть в шестом раз­ряде, сдвиг производится на пять разрядов, а если в четвертом, то на три. Если единица в первом разряде, то никакого сдвига делать не надо, в качестве одного из слагаемых берется сам пер­вый сомножитель. Затем все полученные частные слагаемые скла­дываются.

Операция деления в ЭВМ может быть сведена к нескольким операциям вычитаний и сдвигов. Результат деления (частное) оп­ределяется как число вычитаний с учетом сдвигов. Например, де­ление 132 : 11 = 12 можно осуществить в виде такой последова­тельности вычитаний и сдвигов:

 

 

_ 132

110 — первое вычитание

220 — сдвиг

110 — первое вычитание

110 — второе вычитание

Ответ: 12 (одно вычитание до сдвига и два после).

Замена вычитания сложением остатка с дополнительным ко­дом вычитаемого сводит операцию деления к последовательности трех простейших операций.

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

 




Поиск по сайту:

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