A lebegőpontos szám (vagy lebegőpontos szám ) a valós (valós) számok exponenciális ábrázolásának formája , amelyben a szám mantisszaként és kitevőként ( exponens ) van tárolva. Ebben az esetben a lebegőpontos számnak fix relatív pontossága és változó abszolút pontossága van. A leggyakrabban használt ábrázolást az IEEE 754 szabvány határozza meg . A lebegőpontos számokkal végzett matematikai műveletek megvalósítása számítástechnikai rendszerekben lehet hardveres és szoftveres is.
Mivel egyes, túlnyomórészt angol és angol nyelvű országokban a számok írásakor az egész részt elválasztják a törtponttól, ezeknek az országoknak a terminológiájában megjelenik a „lebegőpont” kifejezés . Mivel Oroszországban a szám egész részét hagyományosan vessző választja el a tört résztől, a „lebegőpont” kifejezést történelmileg ugyanarra a fogalomra használják, azonban jelenleg mindkét lehetőség megtalálható az orosz nyelvben. szakirodalmat és műszaki dokumentációt.
A „lebegőpont” elnevezés onnan ered, hogy a számok helyzeti ábrázolásában szereplő vessző (tizedesvessző, számítógépeknél bináris vessző – a továbbiakban egyszerűen vessző) a karakterlánc számjegyeihez képest bárhol elhelyezhető. Ez a vesszőhely külön van megadva a belső ábrázolásban. Így egy szám lebegőpontos formában történő ábrázolása a számok exponenciális jelölésének számítógépes megvalósításaként fogható fel .
A számok lebegőpontos ábrázolásának előnye a fixpontos (és egész számok ) ábrázolással szemben, hogy sokkal nagyobb értéktartomány használható, miközben ugyanaz a relatív pontosság . Például fixpontos formában egy 6 egész számjegyből és 2 tizedesjegyből álló szám 123 456,78 -ként ábrázolható . Viszont a lebegőpontos formátumban ugyanabban a 8 számjegyben írhatja be a számokat 1,2345678 ; 1,234,567,8 ; 0,000012345678 ; 12 345 678 000 000 000 és így tovább, de ehhez szükség van egy további kétjegyű mezőre a 10-es bázis kitevőinek 0-tól 16-ig történő rögzítéséhez, miközben a számjegyek teljes száma 8 + 2 = 10 .
Azt a sebességet, amellyel a számítógép lebegőpontos formában ábrázolt számokkal műveleteket hajt végre, FLOPS -ban mérik (az angol lebegőpontos műveletek másodpercenként - „[szám] lebegőpontos műveletek másodpercenkénti száma”), és ez az egyik fő számítási rendszerek sebességének mérésére szolgáló egységek .
A lebegőpontos szám a következő részekből áll:
A lebegőpontos szám normálalakja olyan alak, amelyben a mantissza (az előjel figyelembe vétele nélkül) a félintervallumon van, azaz .
Ennek a jelölési formának van egy hátránya: egyes számokat félreérthetően írnak fel (például a 0,0001 felírható így : 0,000001⋅10 2 , 0,00001⋅10 1 , 0,0001⋅10 0 , 0,001⋅10 -1011 , 0,001⋅10 . on), ezért egy másik jelölési forma is elterjedt (különösen az informatikában) - normalizált , amelyben egy decimális szám mantisszája 1-től (beleértve) 10-ig (kizárólag) értéket vesz fel, azaz (hasonlóan a egy bináris szám mantisszája 1 és 2 közötti értékeket vesz fel). Ebben a formában bármely szám (kivéve ) egyedi módon van írva. Hátránya, hogy a 0-t ebben a formában lehetetlen ábrázolni, így a számítástechnikában a számok ábrázolása speciális előjelet ( bit ) ad a 0 számhoz.
Egy bináris szám mantisszának (a 0 kivételével) normalizált formában a legmagasabb bitje (a szám egész része) egyenlő 1-gyel (az ún. implicit egység ), ezért ha egy szám mantisszáját egy számítógépen a magas bit elhagyható, amelyet az IEEE 754 szabvány használ . A 2-nél nagyobb bázisú helyzetszámrendszerekben ( terner , negyedleges stb. esetén) ez a tulajdonság nem létezik.
Korlátozott tervezési lehetőségekkel (például szám megjelenítése egy hétszegmenses jelzőn ), és szükség esetén gyors és kényelmes számbevitelt biztosít az m b e forma írása helyett ( m a mantissza; b a bázis , leggyakrabban 10; e a kitevő), csak a mantisszát és a kitevőt írja be, és válassza el őket "E" betűvel (az angol kitevőből ). Ebben az esetben a bázist implicit módon 10-nek tételezzük fel. Például az 1,528535047⋅10 −25 számot ebben az esetben 1,528535047E-25-ként írjuk fel.
Számos módja van annak, hogy a számjegysorozatok számokat ábrázoljanak:
Egy szám lebegőpontos formában történő írása lehetővé teszi számok széles skáláján történő számítások elvégzését, fix számú számjegy és pontosság kombinálásával. Például a lebegőpontos számok (3 számjegyű) decimális ábrázolásánál a szorzási művelet, amit úgy írnánk
0,12 × 0,12 = 0,0144normál formában mint
(1,20⋅10 −1 ) × (1,20⋅10 −1 ) = (1,44⋅10 −2 ).Fixpontos formátumban kényszerített kerekítést kapnánk
0,120 × 0,120 = 0,014.Elveszítettük a szám jobb szélső számjegyét, mivel ez a formátum nem engedi, hogy a vessző „lebegjen” a számbevitel mellett.
Az így felírható számok tartománya a mantisszát és a kitevőt ábrázoló bitek számától függ. Egy tipikus 32 bites, dupla pontosságot (64 bitet) használó számítógépen a mantissza 1 bit előjel + 52 bit, a kitevő 1 bit előjel + 10 bit. Így körülbelül 4,94⋅10 -324 és 1,79⋅10 308 közötti pontossági tartományt kapunk (2 -52 × 2 -1022 és ~1 × 2 1024 között ). (vagy 3,7⋅10 -1126 és 9,99⋅10 1091 között ). Az IEEE 754 szabványban több ilyen típusú érték van fenntartva, hogy speciális értékeket lehessen megjeleníteni. Ide tartoznak a NaN (Not a Number) és a +/-INF (Infinity ) értékek , amelyek a nullával való osztásból vagy a numerikus tartomány túllépéséből adódnak. Ide tartoznak a denormalizált számok is, amelyek mantisszája kisebb, mint egy. A speciális eszközök (például a GPU -k ) gyakran nem támogatják a speciális számokat. Vannak olyan szoftvercsomagok, amelyekben a mantissza és a kitevő számára lefoglalt memória mennyisége programozottan van beállítva, és csak a rendelkezésre álló számítógépmemória mennyisége korlátozza (lásd: Tetszőleges precíziós aritmetika ).
Pontosság | Egyetlen | Kettős | Kiterjedt |
---|---|---|---|
Méret (bájt) | négy | nyolc | tíz |
Tizedesjegyek száma | ~7.2 | ~15.9 | ~19.2 |
Legkisebb érték (>0), denorm | 1,4⋅10 −45 | 4,9⋅10 −324 | 3,7⋅10 −1126 |
Legalacsonyabb érték (>0), normál | 1,2⋅10 −38 | 2,3⋅10 −308 | 1⋅10 −1091 |
Legmagasabb érték | 3,4×10 +38 | 1,7×10 +308 | 9,9×10 +1091 |
mezőket | SEF | SEF | SEIF |
Margóméretek | 1-8-23 | 1-11-52 | 1-15-1-63 |
A fixpontos számokkal ellentétben a lebegőpontos aritmetika által megjeleníthető számrács nem egységes: sűrűbb a kis kitevővel rendelkező számok, és ritkább a nagy kitevőkkel rendelkező számok esetében. De a számírás relatív hibája kicsi és nagy számok esetén ugyanaz. A gépi epszilon a legkisebb ε pozitív szám, amelyre (az előjel a gépi összeadást jelöli). Durván szólva, az a és b számok úgy korreláltak, hogy a gép nem tesz különbséget.
Egyszeri pontosság esetén, azaz körülbelül 7 jelentős számjegyből áll . Dupla pontosság esetén: , 15 jelentős számjegy [1] .
Adattípusok | |
---|---|
Értelmezhetetlen | |
Numerikus | |
Szöveg | |
Referencia | |
Összetett | |
absztrakt | |
Egyéb | |
Kapcsolódó témák |