Liukulukun numero: mikä se on? Yksinkertaisesti selitetty esimerkeillä
Tässä käytännöllisessä kärjessä osoitamme sinulle, mikä on liukuluku ja kuinka se eroaa kiinteästä pisteestä.
Liukulukun numero: mikä se on?
Tietotekniikassa liukuluvun numeroa käytetään usein mittaamaan laitteita, joiden oletetaan toimivan tietyllä tarkkuudella.
- Liukulukun numero (tai "liukuluku") on numeron esitys eksponentiaalista merkintää käyttämällä. Poikkeustapauksissa tämä toimii vain suunnilleen. Voit myös edustaa numeroa 1230000 numerolla 1, 23 ⋅ 10⁶.
- 1.23 on nimeltään "Mantissa". 10 on "pohja" ja 6 on "eksponentti". Muuten, merkki voidaan lisätä myös mantissaan. Voit kuitenkin soveltaa koko asiaa kaksoisjärjestelmään. Voit myös edustaa numeroa 10101100 numerolla 1.0101100 ⋅ 2⁷. Tietokone tallentaa vain merkin, mantissan ja eksponentin.
- Tietokoneet liikuttavat pilkkua yleensä edestakaisin, kunnes pilkun edessä on vain yksi. Sitten PC: n on vain tallennettava mantissan ja eksponentin desimaalit.
- Jotta eksponentti voidaan tallentaa positiivisena numerona, lisätään kiinteä luku, ns. Bias. Paikan pienin mahdollinen eksponentti ennen desimaalia (- bias) tallennetaan arvoksi 0.
- Toisin kuin kiinteän pisteen numero, pilkku ei ole kiinteässä pisteessä liukulukujen numerossa.
Half, Float & Double - liukulukujen yleinen koodaus
Olet varmasti törmännyt näiden kolmen termin yli, varsinkin kun ohjelmoit Arduinon kanssa. Nämä ovat standardoituja esityksiä.
- Tietotyyppi "puoli" on 16-bittinen numero. Vasemmanpuoleinen bitti on vastuussa merkistä. Eksponentilla on 5 bittiä ja mantissa 10. Käytetty ennakko on 15. Koska mantissan ensimmäinen bitti on (melkein) aina 1, tätä ei tallenneta.
- "Kelluva" (tai "yksi") tietotyyppi on 32-bittinen numero. Myös tässä vähän käytetään merkkiä. Eksponentilla on kuitenkin 8 bittiä (bias = 127) ja mantissa 23.
- Tietotyyppi "double" käyttää vähän myös merkissä. Tässä eksponentissa on kuitenkin 11 bittiä (bias = 1023) ja mantissassa jopa 52 bittiä. Yhteensä tämä on 64 bittiä, ts. 8 tavua.
- Näiden kolmen yleisen tietotyypin lisäksi on myös paljon muuta. Näitä ei kuitenkaan useimmiten käytetä, koska puolikkaan, kelluvan ja kaksinkertaisen tarkkuus on jo riittävän hyvä.
Muunna desimaaliluvut liukulukuun - kuinka se toimii
Lopuksi haluaisimme näyttää sinulle, kuinka voit muuntaa normaalin desimaaliluvun liukulukuun.
- Tässä esimerkissä käytämme desimaalilukua 18.4. Numero ennen desimaalipistettä siirretään ensin kaksoisjärjestelmään. Seurauksena pitäisi olla (10010) ₂.
- Sitten sinun on muunnettava 0.4. Kerro ensin 0, 4 kahdella. Tuloksena saadaan 0, 8. Kirjoita numero muistiin ennen pilkkua. Tässä tapauksessa se on 0. Kerro sitten 0, 8 2: lla. Tällä kertaa saat tuloksen 1, 6. Tee muistiinpano 1: stä ja jatka laskemista 0.6: lla. Hetken kuluttua huomaat, että kuvio toistuu (tässä esimerkissä). Kirjoita lopuksi kaikki numerot ylhäältä alas: 011001100110 ...
- Lisää sitten numerot yhteen: Lisää myös (⋅ 2⁰) niin, että saat 10010.01100110 ... ⋅ 2⁰. Siirrä sitten pilkkua, kunnes desimaalin tarkkuudella on vain yksi, ja muuta myös virta sopivasti. Tuloksena pitäisi olla 1.001001100110 ... ⋅ 2⁴, koska olet siirtänyt desimaalin 4 paikkaa vasemmalle. Tätä vaihetta kutsutaan myös "normalisoimiseksi".
- Tässä esimerkissä käytämme tietotyyppiä "kellua". Joten lisää sopiva bias-arvo eksponenttiisi. Sinun on myös muunnettava laskennan tulos 4 + 127 = 131 binaarilukuksi. Numero 131 on numero 10000011 kaksoisjärjestelmässä.
- Nyt voit kirjoittaa valmis liukulukunumeron. Kirjoita ensin bitin merkki. Koska se on positiivinen luku, ensimmäinen bitti on 0. Sitten sinun on kirjoitettava 131. Koko asia sopii tässä tapauksessa täydellisesti, koska tämä luku vaatii 8 bittiä ja 8 bittiä on saatavana kellua varten. Lopuksi, sinun on kirjoitettava muistiin ensimmäiset 23 bittiä, koska mantiissa on 23 bittiä käytettävissä kelluessa.
- Valmiin liukulukun numeron tulisi siksi olla numero 01000001100100110011001100110011. Hieman selkeämpi on numero 0 | 10000011 | 00100110011001100110011.
Muunna liukulukumäärä desimaalilukuksi - Näin tapahtuu
Lopuksi haluamme näyttää sinulle, kuinka voit muuntaa liukulukun numeron uudelleen desimaalilukuna. Tätä varten otamme numeron 1000001100100110011001100110011.
- Täytä ensin numero (edessä) nolla, kunnes saat 16-, 32- tai 64-bittisen numeron. Tässä tapauksessa se on 01000001100100110011001100110011.
- Ensimmäinen numero tarkoittaa merkkiä. Joten lukumme on positiivinen.
- Kirjoita sitten seuraava (tässä tapauksessa) 8 numeroa ja vähennä virhe. (10000011) ₂ = 131 → 131 - 127 = 4 → Joten takana on "⋅ 2⁴".
- Kirjoita nyt "1" ja sitten kaikki jäljellä olevat numerot samoin kuin "⋅ 2⁴": 1.00100110011001100110011 ⋅ 2⁴
- Siirrä sitten pilkku 4 paikkaa oikealle, jotta voit jättää "⋅ 2⁴": 10010.0110011001100110011
- Muunna seuraavaksi 10010 kokonaisluvuksi tavalliseen tapaan. Saat 18.
- Nyt sinun on muunnettava desimaalit. Ensimmäinen numero pilkun jälkeen on arvo 1: 2¹, toinen numero 1: 2² ja niin edelleen. Lisää arvot ja numero ennen pilkkua antaa sinulle numeron 18.3999996185302734375.
Seuraavassa käytännön vinkissä osoitamme sinulle, kuinka voit muuntaa ASCII-kirjaimet binaarilukuiksi.