Denormalisoidun luvun käsitettä käytetään numeroiden esittämisessä tietojenkäsittelytieteessä liukulukumenetelmällä , kuten IEEE 754 -standardi standardoi . Se on tapa esittää numeroita, joiden arvo on hyvin lähellä nollaa.
Tietokoneiden liukulukuesitys perustuu kahteen käsitteeseen: tieteelliseen notaatioon ja binaarijärjestelmään (tai pohjaan 2).
Numeroiden kirjoittamiseen perustilaan 10 voidaan käyttää niin sanottua "tieteellistä" merkintää , joka sisältää kaksi osaa:
muodossa " n × 10 a ". Esimerkiksi :
Termi " eksponentti " vastaa 10: n voimaa ja termi mantissa vastaa desimaaliosaa. Siten kohdassa "1,23 × 10 −2 "
Binaarinen järjestelmä , jota kutsutaan myös " pohjan 2", on tapa huomata numeroita, joihin liittyy vain kaksi numeroa, 0 ja 1. Se soveltuu hyvin elektroniikka, koska tämä vastaa kaksi hyvin eri todetaan: meillä on aux napojen komponenttia a jännite V 0 tai jännite V 1 ("virta ei kulje tai virta kulkee"). Tämän merkinnän erottamiseksi desimaalimerkinnästä lisätään tähän numeron loppuun "b". Tässä on joitain esimerkkejä numeroista:
Nelinumeroinen binääri desimaaliluku n 1 n 0 , n -1 n -2 b vastaa desimaalilukua n 1 × 2 1 + n 0 × 2 0 + n -1 × 2 -1 + n -2 × 2 - 2 .
Meillä voi siis olla binaarinen tieteellinen merkintätapa:
n 1 n 0 , n -1 n -2 b voidaan kirjoittaa n 1 , n 0 n -1 n -2 b × 2 1 .esimerkiksi
Binaarisen tieteellisen notaation tapauksessa liukuluvun lukumäärän on oltava 1b: n ja 10b: n välillä (eli 2 pois lukien), ts. Sen kokonaisluku on välttämättä 1b.
Mainitun standardin mukaan reaaliluvun esitys voidaan jakaa kolmeen osaan:
Esitetyn numeron arvo on yhtä suuri kuin:
arvo = merkki × (1 + mantissa ) × 2 ( eksponentti - offset)Todellakin, tieteellisessä notaarissa binääripohjaisesti koko osa on välttämättä 1, siksi on hyödytöntä käyttää vähän edustamaan sitä, on tyytyväinen edustamaan murto-osaa.
Luku sanotaan denormalized kun
Jos noudattaisimme samaa esitystä kuin luvuilla, joiden eksponentti on nolla, meillä olisi
arvo = merkki × (1 + mantissa ) × 2 -vaihtomutta säilytetty arvo on
arvo = merkki × mantissa × 2 -vaihto + 1ts. kahdeksalle bitille koodatulle eksponentille (ns. yksi tarkkuusesitys) meillä on
arvo = merkki × mantissa × 2-126ja että 11 bitille koodatulle eksponentille (ns. kaksoistarkka esitys) meillä on
arvo = merkki × mantissa × 2 -1022Denormalisoiduilla numeroilla hylkäämme tieteellisen merkinnän. Jos mantissa vastaa arvoa 0,1b ("b" tarkoittaa, että olemme binaarimoodissa, perustassa kaksi), niin:
näemme siten, että pienin edustettava luku normalisoidulla tavalla on 1.000… 00b × 2 - siirto (koska nollaa edustaa nolla mantissaa ja nollaeksponenttia ), kun taas denormalisoidussa esityksessä se on 0.000… 01b × 2 - offset . Siksi voimme edustaa pienempiä lukuja. Se varmistaa myös jatkuvuuden normalisoitujen lukujen kanssa, koska:
tai “hyppy” 0,000… 01b × 2 - vaihto + 1
Siksi meillä on yksinkertainen tarkkuus:
Tyyppi | Näytteilleasettaja | Mantissa | Arvioitu arvo | Poikkeama / edellinen |
---|---|---|---|---|
Nolla | 0000 0000 | 000 0000 0000 0000 0000 0000 | 0,0 | |
Pienin denormalisoitu luku | 0000 0000 | 000 0000 0000 0000 0000 0001 | 1,4 × 10 −45 | 1,4 × 10 −45 |
Seuraava denormalisoitu numero | 0000 0000 | 000 0000 0000 0000 0000 0010 | 2,8 × 10 −45 | 1,4 × 10 −45 |
Seuraava denormalisoitu numero | 0000 0000 | 000 0000 0000 0000 0000 0011 | 4,2 × 10 −45 | 1,4 × 10 −45 |
... | ... | ... | ... | ... |
Suurin denormalisoitu numero | 0000 0000 | 111 1111 1111 1111 1111 1111 | 1,175494 21 × 10 −38 | 1,4 × 10 −45 |
Pienin standardoitu numero | 0000 0001 | 000 0000 0000 0000 0000 0000 | 1,175494 35 × 10 −38 | 1,4 × 10 −45 |
Seuraava standardoitu numero | 0000 0001 | 000 0000 0000 0000 0000 0001 | 1,175494 49 × 10 −38 | 1,4 × 10 −45 |