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

Извършването на аритметични операции с реални числа се различава от подобни операции с цели числа.

До началото на изпълнението на аритметичната операция, операндите на операцията се поставят в съответните регистри на ALU.

При събиране и изваждане първо се извършва подготвителна операция, нареченаподравняване на реда.

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

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

Ако е необходимо, резултатът се нормализира чрез изместване на мантисата на резултата наляво. След всяко изместване наляво редът на резултата намалява с единица.

По принцип операциитесъбиране, изваждане на числа, представени във формат с плаваща запетая, се извършват в следната последователност:

1) Поръчките се сравняват (в същото време, тъй като не самите поръчки се съхраняват във форматите, а изместените поръчки, като цели числа без знак, тяхното сравнение се извършва чрез изваждането им като цели числа без знак).

2) Редовете на числото с по-нисък ред са подравнени спрямо числото с по-висок ред.

3) Извършва се алгебрично събиране.

4) Резултатите се нормализират.

Пример 3. Съберете двоичните нормализирани числа 0,10111•2 –1 и 0,11011*2 10 . Разликата в реда на термините тук е равна на

Пример 4. Извадете двоично нормализираночислата 0,10101*2 10 и 0,11101*2 1 . Разликата в реда на умаляваното и изважданото тук е равна на единица, следователно, преди изваждане, мантисата на второто число се измества с един бит надясно:

При добавяне, изваждане на мантиси може да има нарушение на нормализацията (денормализация) наляво с 1 бит. За да получите нормализиран резултат, е необходимо да изместите мантисата с 1 бит надясно и да увеличите реда с 1.

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

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

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

Деактивирайте adBlock! и обновете страницата (F5)наистина е необходимо