Overflow малко setki_4

Overflow Detection се основава на използването на термини, трансферите, възникващи при изпълнението на дейностите по събирането. Overflow се появява само ако промени в знаков бит и малко признаци на по-различно.

В първия пример, прехвърлянето на малко знак е 1, знака на а е 0. Във втория пример, трансфер на сондажната знак е 0 и знака на raven1. Това показва, преливане цифри мрежа.

Изваждане произволни числа марка може да се редуцира до алгебрични допълнение операция х - у = х + (-ил).

За допълнителна и получите код за връщане

където [Y] - код обръщане средства.

За изваждане на ехидна то трябва да бъде предоставена за преки и обратни брой кодове на изходните предаване.

· Алгебрични представяне на двоични числа

Брой знаци обикновено кодирано двоично цифра, кодът 0 означава знака + (плюс), код 1 - знак - (минус). За алгебрични представителството на цифрите, това е, за да представляват номера с техните знаци, специални кодове се използват в машините:

· Директно кодов номер;

· Inverse кодов номер;

· Допълнителна стойност.

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

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

1. Директен код на N - [N] PR. Нека N = а на един. а;

• Ако N> 0, тогава [N] NP = 0, А А А. а;

• Ако N <0, то [N]пр = 1, a a a. a;

• Ако N = 0, тогава неяснотата: [0] = 0.0 AVE. или [0] = 1.0 AVE.

Обобщавайки резултатите, получаваме:

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

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

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

2. Кодът на връщане на N - [N] ARR.

Символът * означава реципрочна на (инверсия а), т.е. ако а = 1, тогава * = 0, и обратно.

• Ако N> 0, тогава [N] = мод [N] NP = 0, А. а,

• Ако N <0, то [N]обр = 1, a* a*. a*,

• Ако N = 0, неяснотата [0] ARR = 0.00. 0 или [0] ARR = 1.11. 1.

За да се получи обратният код на отрицателно число, което трябва всички цифри на номера, да се обръщат, че е знак, малко да се сложи един във всички значителни зауствания нули заместят такива, както и такива с нули.

Например, броят N = 0,1011, [N] ARR = 0,1011. Броят N = -0,1011, [N] ARR = 1,0100. В случай, когато N <0, [N]обр = 10 – 1·10–n + N, то есть [N]обр = 1,1111 + N.

Обобщавайки резултатите, ние получаваме

3. Допълнителен код на N - [N] вътр

• Ако N> = 0, тогава [N] вътр = [N] NP = 0, А. а,

• Ако N <= 0, то [N]доп = 1, a* a*. a* + 0,0 0. 1.

За да се получи допълнителна код на отрицателно число, то е необходимо да се обърнете всички негови цифри (в знаков бит, за да поставите модула във всички значителни зауствания нули заменят единици и нули на единица) и след това да се добави една LSB. В случай на прехвърляне на първата разделят след освобождаването от отговорност във знаков бит, трябва да се добави номера на уреда в LSB.

Например, N = 0,1011, [N] вътр = 0,1011; N = -0,1100, [N] вътр = 1,0100; N = -0,0000, [N] вътр = 0.0000 = 10.0000 (1 изчезва). Неяснотата в изображение 0 не. Обобщавайки, можем да запишем:

TIP. Основно правило: за допълнителен код на отрицателно число трябва да е всички герои на този номер, за да се обръщат с изключение на последните (най-малките) единици и нули тези, които последваха.