АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

ПРАВИЛА ВЫПОЛНЕНИЯ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ

Читайте также:
  1. B3.4. Правила оформления графиков
  2. I. Правила терминов
  3. II. МЕТОДИЧЕСКИЕ УКАЗАНИЯ ДЛЯ ВЫПОЛНЕНИЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
  4. Алгоритм выполнения прически
  5. Анализ выполнения договорных обязательств
  6. Анализ выполнения договорных обязательств и реализации продукции
  7. Анализ выполнения федеральной целевой программы «Дети-инвалиды»
  8. Будова, призначення та правила використання порошкових вогнегасників.
  9. Бухгалтерский учет кассовых операций.
  10. Виды нотариальных действий и правила их совершения
  11. Виды операций.
  12. Виды операций.

СЛОЖЕНИЕ чисел, представленных в двоичном коде, выполняется поразрядно, начиная с младшего разряда. В результате сложения двух первых кодов слагаемых X0, Y0 получается первый разряд суммы S0 и код переноса P0 в следующий разряд. В следующих разрядах код Si будет определяться с учетом переноса из соседнего младшего разряда:

7 0111

5 0101

+ ── + ─────

12 1100

ОПЕРАЦИЯ ВЫЧИТАНИЯ в ЭВМ выполняется так же как и сложение, но при этом отрицательные числа представляются в дополнительном или обратном коде. Смысл перевода отрицательных чисел из прямого в дополнительный и обратный коды поясним на примере с десятичными числами.

Допустим, требуется сложить числа X1=76 и X2=-58. Заменим код отрицательного слагаемого X2 его дополнением до 100, так чтобы [X2]доп=100+X2=42. Сложив числа X1+[X2]доп получим:

Y=X1+[X2]доп=76+42=118

Отбрасывая 1 старшего разряда получим искомый результат 18. Равенство полученного результата истинному объясняется тем, что при формировании дополнительного кода к X2 мы прибавляли 100, а из результата вычитали 100 отбрасыванием старшего разряда.

Y=X1+[X2]доп-100=X1+[X2+100]-100=76+[-58+100]-100=18

При записи двоичного числа в прямом коде в знаковом разряде ставится его знак (0 - плюс, 1 - минус), а само число записывается в естественной форме:

X=1310 [X]пр=011012

X=-1310 [X]пр=111012

ДОПОЛНИТЕЛЬНЫЙ КОД отрицательных двоичных чисел получается заменой двоичных кодов во всех разрядах на взаимно обратные (0 на 1, 1 на 0). После этого к младшему разряду числа добавляется 1. В знаковом разряде отрицательного числа записывается 1.

[-14]доп=[-01110]доп=[10001+1]=10010

Кроме дополнительного кода для представления отрицательных чисел используется ОБРАТНЫЙ КОД. В этом случае в знаковом разряде записывается 1, а в остальных разрядах цифры заменяются на взаимно обратные

[-14]обр=[-01110]обр=10001

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

12 X1пр=0.1100 X1обр=0.1100 X1доп=0.1100

5 X2пр=0.0101 X2обр=1.1010 X2доп=1.1011

- ─── - ─────────── + ──────────── + ────────────

7 Sпр= 0.0111 10.0110 10.0111

└──>──┘ <──┘

Sобр= 0.0111 Sдоп= 0.0111

 

Y=5-12=-7 X1обр=0.0101 X1доп=0.0101

X2обр=1.0011 X2доп=1.0100

+ ──────────── + ────────────

Sобр= 1.1000 Sдоп= 1.1001

Sпр= -0.0111 Sпр= -0.0111

 

УМНОЖЕНИЕ ДВОИЧНЫХ ЧИСЕЛ, представленных в форме с фиксированной точкой, включает в себя определение знака и абсолютного значения произведения. Знаковый разряд произведения может быть получен суммированием знаковых разрядов сомножителей без формирования переноса (так называемое суммирование по модулю 2). Действительно, при совпадении цифр знаковых разрядов сомножителей (0 и 0, либо 1 и 1) их сумма по модулю 2 равна 0, т.е. соответствует знаковому разряду произведения двух сомножителей, имеющих одинаковые знаки; при несовпадении цифр знаковых разрядов эта сумма будет равна 1, что также соответ-ствует знаковому разряду произведения двух сомножителей с разными знаками. Абсолютное значение произведения получается путем перемножения чисел без учета их знаков (так называемого кодового умножения).

Пусть производится умножение чисел 1310 =11012 и 1110 =10112

13 1101

X X

11 1011

──── ─────

13 1101

+ + 1101

13 0000

──── 1101

143 ────────

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

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

ДЕЛЕНИЕ ДВОИЧНЫХ ЧИСЕЛ. Будем рассматривать операцию алгебраического деления чисел, представленных в форме с фиксированной точкой. при этом выполнение операции содержит действия, связанные с определения модуля частного. Знак частного может быть найден тем же приемом, что и знак произведения в рассмотренной выше операции умножения с отделением знаковых разрядов.

На рисунке 1 показана схема алгоритма нахождения частного положительных чисел a и b.

 


 

┌─────────────┐

│ S T A R T │

└──────┬──────┘

┌1─────────┴──────────┐

│ c = a - b │

└──────────┬──────────┘

│<─────────────────────────────────────┐

2──────/ \──────\ Нет │

< c>=0 >────────────────┐ │

\────── ──────/ │ │

\ / Да │ │

┌3─────────┴──────────┐ ┌4─────────┴──────────┐ │

│Запись 1 в очередной │ │Запись 0 в очередной │ │

│из старших разрядов │ │из старших разрядов │ │

│ частного │ │ частного │ │

└──────────┬──────────┘ └──────────┬──────────┘ │

│ │ │

┌5─────────┴──────────┐ ┌6─────────┴──────────┐ │

│ сдвиг влево c │ │ сдвиг влево c │ │

└──────────┬──────────┘ └──────────┬──────────┘ │

│ │ │

┌7─────────┴──────────┐ ┌8─────────┴──────────┐ │

│ c = c - b │ │ c = c + b │ │

└──────────┬──────────┘ └──────────┬──────────┘ │

│<────────────────────────┘ │

9────────/ \──────── │

/ Сформированы все \ Нет │

< разряды частного? >───────────────────────────┘

\───────── ────────/

\ / Да

┌─────────┴──────────┐

│ S T O P │

└────────────────────┘ Рисунок 1.

.

Покажем выполнение операции на примере. Пусть после отделения знаковых разрядов модули делимого и делителя представляются соответственно числами a=0.10010 и b=0.10110.

Встречающуюся в алгоритме операцию вычитания числа заменим прибавлением числа -b, представленного в дополнительном коде: (-b)доп=1.01010.

 

a 0.10010 0. 1 0 1 1 0

(-b)доп 1.01010 ────────────

+ ─────── 0. 1 1 0 1 0 Частное

c 1.11100 c < 0 ───┘ │ │ │ │ │

│ │ │ │ │

Сдвиг влево 1.11000 │ │ │ │ │

b 0.10110 │ │ │ │ │

+ ─────── │ │ │ │ │

c 0.01110 c > 0 ──────┘ │ │ │ │

│ │ │ │

Сдвиг влево 0.11100 │ │ │ │

(-b)доп 1.01010 │ │ │ │

+ ─────── │ │ │ │

c 0.00110 c > 0 ────────┘ │ │ │

│ │ │

Сдвиг влево 0.01100 │ │ │

(-b)доп 1.01010 │ │ │

+ ─────── │ │ │

c 1.10110 c < 0 ──────────┘ │ │

│ │

Сдвиг влево 1.01100 │ │

b 0.10110 │ │

+ ─────── │ │

c 0.00010 c > 0 ────────────┘ │

Сдвиг влево 0.00100 │

(-b)доп 1.01010 │

+ ─────── │

c 1.01110 c < 0 ──────────────┘

 

Проверка: a=0,100102 = 0,562510

b=0,101102 = 0,687510

a/b=0,110102 = 0,812510

.


1 | 2 | 3 | 4 | 5 |

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



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.014 сек.)