Представяне на числа в двоична плаваща точка

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

Десетичната аритметика алгебрични форма се използва за запис на тези номера. Броят написани на мантисата форма, умножена по 10 до показване на реда на номера, например:

0,2 х 10 май;
0,16 х 10 -38

Също така се използва форма за записване на двоични числа. Тя ви позволява да се работи с числа с голям диапазон от стойности на тази форма на писане, наречен влизане с плаваща запетая. Спомнете си, че мантисата не може да бъде по-голям от една страна, и след десетичната запетая в мантисата не mozhetzapisyvatsya нула.

В програмирането за регистрирането на тези числа са специални променливи формати. В C, то формати като плувка и двойно. Те са описани в стандарта IEEE 754. Същите тези стандарти, приети от повечето други езици за програмиране. Когато става въпрос за числа с плаваща запетая обикновено е никаква трудност в състава на езика за програмиране. Всички номера преформатиране извършват с помощта на езика за програмиране. Въпреки това, прехвърляне на данни или при работа с микроконтролери често трябва да напише програма на език за програмиране на асемблер и след това може да изисква познаване на вътрешния представителството на номера.

За да запишете номера на плаваща запетая единична точност изисква tridtsatidvuhbitovoe дума. За да напишете номера с двойна точност изисква shestidesyatichetyrohbitovoe дума. В повечето случаи, броят съхранявани в няколко съседни клетки процесор памет. Формати броят във формата на единична точност числа с плаваща запетая и плаваща запетая двойна точност е показано на фигурата


Фигура 1. формати плаваща точка номер

На фигурата буквата S означава знакът на числата 0 - положително число, 1 - отрицателно число.

Групата на битовете, означена д извънматочна предназначени за запис на броя на ред. Офсетните изисква да не влиза в двоични числа с плаваща запетая е друг знак. Извънматочна поръчка е винаги положително число. двоичен единична точност плувка за запис на заповед на осем бита разпределени. За него, изместването от порядъка на 127 изработват по поръчка в извънматочна двоична плаваща запетая двойна точност двойно назначен 11-бита. Тя компенсира брой е от порядъка на - 1023.

Мантисата след десетичната точка могат да присъстват фигури 1 и 9 двоични - 1. Ето защо само един бит в число с плаваща точка не се разпределя след двоичен точката на секцията за съхранение. Устройството е предназначено, като двоичен точка. В допълнение, числата с плаваща запетая формат се приема, че мантисата винаги е по-голямо от 1. Това означава, че обхватът на стойностите на мантисата е в диапазона от 1 до 2.

Разполагате с няколко примера:

1) Определяне на броя на плаваща точка лежи в съседните четири байта:

11000001 01001000 00000000 00000000

- знаков бит равен на 1 показва, че броят им е отрицателна.

- Експонента 10000010 съответства на знак номер 130. изваждане на броя 127 130, имат номер 3.

- Сега пиша мантисата: 1000 0000 0000 1100 0000 0000

- И, накрая, ние определяме на десетични числа: 1100,1b = 12,5d

2) Определяне на броя на плаваща точка лежи в съседните четири байта:

11000011 00110100 00000000 00000000

- знаков бит равен на 1 показва, че броят им е отрицателна.

- Експонента 10000110 съответства на знак номер 134. изваждане на броя 127 134, ние получаваме броя 7.

- Сега пиша мантисата: 0100 0000 0000 1011 0000 0000

- И, накрая, ние определяме на десетични числа: 10110100b = 180d

За да напишете нула в двоичното представяне на числа с плаваща запетая е достатъчно да напишете в реда на броя на разселените 00000000b. Мантисата не е важно. Броят, в което всички байта са равни на 0, също попада в тази диапазон от стойности.

Infinity сред плаваща запетая съответства на реда и офсетов 11111111b мантисата, равен на 1,0. В същото време има отрицателен безкрайност и положителен безкрайност (преливник и долен поток), които често са показани на компютърен монитор или дисплей като микропроцесор + INF и -INF.

Всички други комбинации от бита на мантисата на плаваща точка (включително всички единици) с отместване начин 11111111b възприемат като език за програмиране не е броят и показани на екрана: NaN.

Други видове двоични кодове: