Dešimtainį skaičių paverskite dvejetainiu IEEE 754 formatu

Autorius: John Pratt
Kūrybos Data: 15 Vasario Mėn 2021
Atnaujinimo Data: 1 Liepos Mėn 2024
Anonim
HOW TO: Convert Decimal to IEEE-754 Single-Precision Binary
Video.: HOW TO: Convert Decimal to IEEE-754 Single-Precision Binary

Turinys

Skirtingai nuo žmonių, kompiuteriuose nenaudojama dešimtainių skaičių sistema. Jie naudoja dvejetainių ar dvejetainių skaičių sistemą su dviem galimais skaitmenimis - 0 ir 1. Taigi skaičiai IEEE 754 (IEEE standartas, skirtas dvejetainiams skaičiams pateikti su slankiuoju tašku) rašomi labai skirtingai, nei tradicinėje dešimtainėje sistemoje. priprasti. Šiame straipsnyje sužinosite, kaip rašyti skaičių vienu arba dvigubu tikslumu pagal IEEE 754. Šiam metodui reikia žinoti, kaip konvertuoti skaičius į dvejetainę formą. Jei nežinote, kaip tai padaryti, galite tai išmokti perskaitę straipsnį „Dvejetainio failo konvertavimas į dešimtainį kablelį“.

Žengti

  1. Pasirinkite vieną arba dvigubą tikslumą. Rašant skaičių vienkartiniu arba dvigubu tikslumu, sėkmingo konvertavimo veiksmai bus vienodi abiem. Vienintelis pokytis įvyksta pavertus rodiklį ir mantisą.
    • Pirmiausia turime suprasti, ką reiškia vienas tikslumas. Slankiojo kablelio vaizde bet koks skaičius (0 arba 1) laikomas „bitu“. Todėl viename tikslume iš viso yra 32 bitai, suskirstyti į tris skirtingus dalykus. Šiuos dalykus sudaro ženklas (1 bitas), rodiklis (8 bitai) ir mantissa arba trupmena (23 bitai).
    • Kita vertus, dvigubo tikslumo sąranka ir tos pačios trys dalys, kaip ir vieno tikslumo, skiriasi tik tuo, kad tai bus didesnis ir tikslesnis skaičius. Šiuo atveju ženklas turės 1 bitą, eksponentas 11 bitų ir mantissa 52 bitus.
    • Šiame pavyzdyje skaičių 85.125 paversime vienu tikslumu pagal IEEE 754.
  2. Atskirkite skaičių prieš kablelį ir po kablelio. Paimkite norimą konvertuoti skaičių ir atskirkite jį taip, kad liktų sveikas skaičius ir dešimtainis skaičius. Šiame pavyzdyje laikome skaičių 85,125. Tai galite atskirti į skaičių 85 ir dešimtainį kablelį 0,125.
  3. Konvertuokite visą skaičių į dvejetainį skaičių. Tai tampa 85 iš 85,125, kuris, pavertus dvejetainiu, taps 1010101.
  4. Dešimtainę dalį paverskite dvejetainiu skaičiumi. Tai yra 0,125 iš 85,125, kuris dvejetainiu formatu tampa 0,001.
  5. Sujunkite dvi skaičiaus dalis, kurios buvo paverstos dvejetainiais skaičiais. Skaičius 85 yra dvejetainis, pavyzdžiui, 1010101, o dešimtainė dalis - 0,125 - dvejetainė 0,001. Sujungę juos su dešimtainiu kableliu, gausite 1010101.001 kaip galutinį atsakymą.
  6. Konvertuokite dvejetainį skaičių į dvejetainį mokslinį užrašą. Skaičius galite paversti dvejetainiu moksliniu žymėjimu perkeldami dešimtainį tašką į kairę, kol jis bus dešiniajame pirmojo bito taške. Šie skaičiai yra normalizuoti, o tai reiškia, kad pagrindinis bitas visada bus 1. Kalbant apie eksponentą, dešimtainio skaičiaus perkėlimo kartų skaičius yra dvejetainio mokslo žymėjimo rodiklis.
    • Atminkite, kad dešimtainio skaičiaus perkėlimas į kairę duoda teigiamą, o dešimtainis dešinysis - neigiamą.
    • Mūsų pavyzdyje dešimtainį kablelį turite perkelti šešis kartus, kad jis būtų dešiniojo pirmojo bito dešinėje. Tada gaunamas formatas tampa 01,01010100126{ displaystyle 01.010101001 * 2 ^ {6}}Nustatykite skaičiaus ženklą ir pateikite jį dvejetainiu formatu. Dabar nustatysite, ar pradinis skaičius yra teigiamas, ar neigiamas. Jei skaičius yra teigiamas, parašykite tą bitą kaip 0, o jei jis yra neigiamas, kaip 1. Kadangi pradinis skaičius yra 85,125 teigiamas, parašykite tą bitą kaip 0. Tai dabar pirmasis 32 visų jūsų tikslumo bitas. perteikimas pagal IEEE 754.
    • Pagal tikslumą nustatykite rodiklį. Yra fiksuotas šališkumas tiek vieno, tiek dvigubo tikslumo atžvilgiu. Vieno tikslumo eksponento šališkumas yra 127, o tai reiškia, kad turime pridėti anksčiau rastą dvejetainį rodiklį. Taigi rodiklis, kurį ketinate naudoti, yra 127 + 6 = 133.
      • Dvigubas tikslumas, kaip rodo pavadinimas, yra tikslesnis ir gali talpinti didesnius skaičius. Vadinasi, eksponento šališkumas 1023. Čia taikomi tie patys žingsniai, kurie naudojami taikant vieną tikslumą, taigi rodiklis, kurį galite naudoti dvigubam tikslumui nustatyti, yra 1029.
    • Konvertuokite rodiklį į dvejetainį. Nustačius galutinį rodiklį, turite jį konvertuoti į dvejetainį, kad jį būtų galima naudoti konvertuojant IEEE 754. Pavyzdyje galite konvertuoti 133, kuriuos radote paskutiniame žingsnyje, į 10000101.
    • Nustatykite mantisą. Mantisos aspektas arba trečioji IEEE 754 konversijos dalis yra likusi skaičiaus dalis po dešimtainio skaitmens po mokslinio dvejetainio žymėjimo. Jūs tiesiog praleiskite 1 priekyje ir nukopijuokite dešimtainę skaičiaus dalį, padaugintą iš dviejų. Dvejetainio konversijos nereikia! Pavyzdyje mantissa tampa 010101001 iš 01,01010100126{ displaystyle 01.010101001 * 2 ^ {6}}Galiausiai sujunkite tris dalis į vieną skaičių.
      • Galiausiai jūs sujungiate viską, ką iki šiol apskaičiavome atlikdami konversiją. Skaičius pirmiausia prasidės nuo 0 arba 1, kurį nustatėte atlikdami 7 veiksmą, remdamiesi ženklu. Pavyzdyje pradėsite nuo 0.
      • Tada turite eksponentą, kurį nustatėte atlikdami 9 veiksmą. Pavyzdyje rodiklis yra 10000101.
      • Tada ateina mantissa, trečioji ir paskutinė atsivertimo dalis. Tai padarėte anksčiau, kai paėmėte dešimtainę dvejetainės konversijos dalį. Pavyzdyje mantissa yra 010101001.
      • Galiausiai visus šiuos skaičius sujungsite vienas su kitu. Tvarka yra ženklas-eksponentas-mantissa. Sujungę šiuos tris dvejetainius skaičius, likusią mantisą užpildykite nuliais.
      • Pavyzdžiui, sprendimas yra konvertuoti 85,125 į dvejetainį IEEE 754 formatą 0 10000101 01010100100000000000000.