Număr denormalizat

Noțiunea de număr denormalizat este utilizată în reprezentarea numerelor în informatică prin metoda virgulă mobilă , așa cum este standardizat de standardul IEEE 754 . Este un mod de a reprezenta numere având o valoare foarte aproape de zero.

Condiții prealabile

Reprezentarea în virgulă mobilă pentru calculatoare se bazează pe două concepte: notația științifică și sistemul binar (sau baza 2).

Pentru a scrie numere în baza 10, putem folosi așa-numita notație „științifică” , care include două părți:

sub forma „  n × 10 a  ”. De exemplu :

Termenul „  exponent  ” corespunde puterii 10, iar termenul mantissa corespunde părții zecimale. Astfel, în „1,23 × 10 −2  ”,

Sistemul binar , numit și „  baza 2”, este un mod de notare a numerelor care implică doar două cifre, 0 și 1. Este foarte potrivit pentru electronică, deoarece aceasta corespunde cu două stări foarte distincte: avem terminale aux ale unei componente a tensiunea V 0 sau o tensiune V 1 („curentul nu curge sau curentul trece”). Pentru a distinge această notație de notația zecimală, adăugăm aici un „b” la sfârșitul numărului. Iată câteva exemple de numere:

Un număr zecimal binar format din patru cifre n 1 n 0 , n -1 n -2 b corespunde numărului zecimal n 1 × 2 1 + n 0 × 2 0 + n -1 × 2 -1 + n -2 × 2 - 2 .

Astfel putem avea o notație științifică binară:

n 1 n 0 , n -1 n -2 b poate fi scris n 1 , n 0 n -1 n -2 b × 2 1 .

de exemplu

În cazul notației științifice binare, numărul în virgulă mobilă trebuie să fie între 1b inclusiv și 10b exclus (adică 2 excluse), adică partea sa întreagă este în mod necesar 1b.

Reprezentarea unui număr normalizat

Conform standardului menționat, reprezentarea unui număr real poate fi împărțită în trei părți:

Valoarea numărului reprezentat este egală cu:

valoare = semn × (1 + mantisă ) × 2 ( exponent - offset)

Într-adevăr, în notația științifică pe bază binară, întreaga parte este neapărat 1, de aceea este inutil să folosiți un pic pentru a-l reprezenta, cineva este mulțumit să reprezinte partea fracționată.

Reprezentarea unui număr denormalizat

Se spune că un număr este denormalizat atunci când

Dacă am urma aceeași reprezentare ca și pentru numerele cu exponent diferit de zero, am avea

valoare = semn × (1 + mantisă ) × 2 -shift

dar valoarea reținută este

valoare = semn × mantissa × 2 -shift + 1

adică pentru un exponent codat pe 8 biți (așa-numita reprezentare de precizie simplă), avem

valoare = semn × mantisă × 2 -126

și că pentru un exponent codat pe 11 biți (așa-numita reprezentare cu precizie dublă), avem

valoare = semn × mantisă × 2 -1022

Motivul acestei reprezentări

Cu numere denormalizate, abandonăm notația științifică. Dacă mantisa corespunde cu 0,1b („b” înseamnă că suntem în modul binar, în baza doi), atunci:

vedem astfel că cel mai mic număr reprezentabil într-un mod normalizat este 1.000 ... 00b × 2 - shift (deoarece o mantisă nulă și un exponent nul sunt utilizate pentru a reprezenta zero), în timp ce în reprezentarea denormalizată, este 0.000 ... 01b × 2 - compensat . Prin urmare, putem reprezenta numere mai mici. De asemenea, asigură continuitatea cu numerele normalizate, deoarece:

sau un „salt” de 0,000 ... 01b × 2 - shift + 1

Prin urmare, avem, cu o precizie simplă:

Tip Expozant Mantissa Valoare aproximativă Abaterea / prev
Zero 0000 0000 000 0000 0000 0000 0000 0000 0,0
Cel mai mic număr denormalizat 0000 0000 000 0000 0000 0000 0000 0001 1,4 × 10 −45 1,4 × 10 −45
Următorul număr denormalizat 0000 0000 000 0000 0000 0000 0000 0010 2,8 × 10 −45 1,4 × 10 −45
Următorul număr denormalizat 0000 0000 000 0000 0000 0000 0000 0011 4,2 × 10 −45 1,4 × 10 −45
... ... ... ... ...
Cel mai mare număr denormalizat 0000 0000 111 1111 1111 1111 1111 1111 1.175 494 21 × 10 −38 1,4 × 10 −45
Cel mai mic număr normalizat 0000 0001 000 0000 0000 0000 0000 0000 1.175 494 35 × 10 −38 1,4 × 10 −45
Următorul număr standardizat 0000 0001 000 0000 0000 0000 0000 0001 1.175 494 49 × 10 −38 1,4 × 10 −45

Vezi și tu

linkuri externe