Събиране и изваждане

Повечето компютри не използват операцията за изваждане . Вместо това е добавянето на приспадащия се с изваден обратния или допълнителен код. Това ви позволява значително да опростите дизайна на ALU.

Когато добавяте двоични кодове от числа A и B, има четири основни и два специални случая:

1. Числата A и B са положителни . При сумиране се добавят всички цифри, включително цифрата на знака. Тъй като знаковите битове на положителните термини са равни на нула , знакът на знака на сумата също е равен на нула.

Например: A = 53 8 , B = 12 8

53 8 +12 8 = 00101011 2 + 00001010 2 = 00110101 2 = 65 8

00101011 2

+ 00001010 2

¾¾¾¾¾¾

= 00110101 2

Точният резултат се получава тук.

2. A е положителен, числото B е отрицателно и в абсолютна стойност е по-голямо от A. Например: 12 8 + (- 53 8 ) = - 41 8 = 00001010 2 + 01010100 2 = 01011110 2

00001010 2

+ 01010100 2

¾¾¾¾¾¾

= 01011110 2

Правилният резултат се получава в обратен код . При превеждане на число в директен код битовете на цифровата част на резултата се обръщат, т.е. 10100001 2 = - 41 8 :

01011110 2 à 10100001 2

3. A е положителен, числото B е отрицателно и в абсолютна стойност по-малко от A.

Например: 53 8 + (-12 8 ) = 41 8 = 00101011 2 + 01110101 2 = 10100000 2

00101011 2

+ 01110101 2

¾¾¾¾¾¾

= 10 100 000 2

Компютърът коригира получения неправилен резултат в директния код (- 40 8 вместо 41 8 ), като прехвърля единицата от знаковата цифра в най-малко значимата цифра:



10 100 000 2 à 00100 001 2

4. Числата А и В са отрицателни .

Например: (–5 8 ) + (–5 8 ) = –12 8 = 01111010 2 + 01111010 2 = 11110100 2

01111010 2

+ 01111010 2

¾¾¾¾¾¾

= 11110100 2

Първоначално полученият резултат е неправилен (получава се връщащият код на числото -13 8 вместо обратния код на числото -12 8 ) компютърът коригира грешката, като прехвърля единицата от знаковата цифра на най-ниската цифра на сумата:

11110100 2 à (носете 1) à 01110101 2 (код на обратен номер)

Когато превеждате резултата в директен код, битовете на цифровата част от числото се обръщат: 01110101 2 à 10001010 2 (директен код) = –12 8 = –10 10

При добавяне може да възникне ситуация, когато битовете от висок ред на резултата от операцията не се вписват в разпределената клетка на паметта. Тази ситуация се нарича препълване на мрежата от цифров формат . Компютърът използва специални инструменти за откриване на препълване и предупреждение за възникнала грешка. Следват два възможни случая на преливане.

5. Числата A и B са положителни, но сборът на A + B е по-голям или равен на 2 n - 1 , където n е броят на битовете на числовия формат (за еднобайтов формат, n = 8, 2 n - 1 = 2 7 = 128 ). Например: 120 8 + 122 8 = 01010000 2 + 01010010 2 = 10100010 2 = 242 8

01010000 2

+ 01010010 2

¾¾¾¾¾¾

= 10100010 2

Седем цифри на цифровата част от цифровия формат не са достатъчни, за да побере осем битовата сума (242 8 = 10100010 2 ), така че най-високата цифра на сумата е в знаковата цифра. Това причинява несъответствие на знака на сумата и знаците на термините, което е доказателство за препълване на битовата мрежа.

6. Числата A и B са отрицателни, а сумата от абсолютните стойности A и B е по-голяма или равна на 2 n - 1 , където n е броят на цифрите от числовия формат. В този случай знакът на сумата също не съвпада с знаците на термините, което ще показва препълване на битовата мрежа.

Умножение и деление

В много компютри умножението се извършва като поредица от добавки и смени. За това АЛУ има регистър, наречен натрупваща суматор , който преди стартирането на операцията съдържа числото нула. По време на операцията мултипликативните и резултатите от междинните добавки се поставят в него последователно, а в края на операцията - крайния резултат.

Друг ALU регистър, участващ в операцията на умножение, първо съдържа умножител. След това, като допълненията са завършени, броят, съдържащ се в него, намалява, докато достигне нула.

Компютърното деление е още по-трудна операция от умножението. Обикновено разделянето се осъществява чрез многократно добавяне на допълнителен разделителен код към дивидента.





; Дата на добавяне: 2018-01-21 ; ; изгледи: 433 ; Публикуваните материали нарушават ли авторските права? | Защита на личните данни


Не намерихте това, което търсите? Използвайте търсенето:

Най-добри поговорки: Да, каква математика сте, ако не можете нормално да защитите парола ??? 8833 - | 7641 - или прочетете всичко ...

2019 @ ailback.ru

Генериране на страница през: 0.004 сек.