anteeksi jos nyt käytän vääriä termejä. kuinka suuri luku mahtuu floatin "kokonaisosaan", eli siis ennen desimaalipilkkua? vai tarkoittaa nimitys liukuluku juuri sitä että pilkku siirtyy sitä mukaa kun lisää desimaaleja tarvitaan? tai jotain.
floatin koko?
sidhasuidfhio
3293
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 3
Vanhimmat
Olen itse olettanut luvun bittien merkitykset muuttuviksi, mutta lyhyen kuuklauksen pohjalta näin ei taidakaan olla. Näyttäisi, että esim. IEEE 32-bittisessä FP-standardissa luvussa on varattu yksi bitti merkille, kahdeksan eksponentille ja loput 23 mantissalle. Siis bittipötkössä ensimmäinen bitti kertoo merkin. Seuraavat kahdeksan bittiä ovat eksponentti 127 (jos eksponentti on -10, niin talletetaan noihin bitteihin 117 jne) ja loput ovat mantissa, eli kerroin. Mantissan talletuksessa eniten merkitsevää bittiä ei itse asiassa ilmeisesti edes talleteta, eli mantissaan voidaan tallettaa 24-bittiä (jossain mielessä) ja normalisaatio kai sitten tehdään eksponentilla.(?)
Tässä eksponentti on kakkosen suhteen, eli liukuluvun arvo on
( -)mantissa*2^eksponentti
Suurin 32-bittiseen floatiin mahtuva kokonaisluku on siis käsittääkseni (2^24-1)*2^{2^7-1}. Viisaammat oikaiskoot jos meni metsään.
Mantissassa se bitti jota ei käytetä on 1 ja loput ovat desimaaleja (siis ensinmäinen bitti on 1/2, toinen 1/4 jne). ja exponentti on siis -127.
Eli luvun täytyy siis olla pienempi kuin 2^128, mutta tarkkuus on vain 24 bittiä eli about 8 desimaalia.
Hyvä kun oikaisit, olin lukenut tuon kohdan huolimattomasti. Esim. http://www.cs.helsinki.fi/u/kuuppelo/tito/k2005/luennot/luento06.pdf
valaisee hyvin saman asian mitä koitin selittää aiemmin.