Peldošā komata numurs: kas tas ir? Vienkārši izskaidrots ar piemēriem
Šajā praktiskajā padomā mēs parādīsim jums, kas ir peldošā komata numurs un kā tas atšķiras no fiksētā komata.
Peldošā komata numurs: kas tas ir?
Datorzinātnē peldošā komata numuru bieži izmanto mērīšanas ierīcēm, kurām ir paredzēts strādāt ar noteiktu precizitāti.
- Peldošā komata numurs (vai "peldošā komata numurs") ir skaitļa attēlojums, izmantojot eksponenciālu apzīmējumu. Izņēmuma gadījumos tas darbojas tikai aptuveni. Jūs varat arī pārstāvēt numuru 1230000 ar numuru 1, 23 ⋅ 10⁶.
- 1, 23 sauc par "Mantissa". 10 ir "bāze", un 6 ir "eksponents". Starp citu, zīmi var pievienot arī mantisai. Tomēr jūs varat visu piemērot arī duālajai sistēmai. Jūs varat arī pārstāvēt numuru 10101100 ar numuru 1.0101100 ⋅ 2⁷. Datorā tiek saglabāta tikai zīme, mantija un eksponents.
- Datori parasti komatu pārvieto uz priekšu un atpakaļ, līdz komata priekšā ir tikai viens. Tad personālajam datoram ir jāsaglabā tikai mantisas un eksponenta decimāldaļas.
- Lai eksponentu varētu saglabāt kā pozitīvu skaitli, tiek pievienots fiksēts skaitlis, tā sauktais novirze. Vietas mazākais iespējamais eksponents pirms komata (- novirze) tiek saglabāts kā 0.
- Atšķirībā no fiksētā komata komats nav fiksētā komata skaitļa punktā.
Puse, peldošais un divkāršais - peldošo komatu kopēja kodēšana
Jūs noteikti esat nokļuvis šajos trīs terminos, it īpaši, plānojot ar Arduino. Tie ir standartizēti attēlojumi.
- Datu tips "puse" ir 16 bitu skaitlis. Kreisais bits ir atbildīgs par zīmi. Eksponentam ir 5 biti un mantisu 10. Izmantotais novirze ir 15. Tā kā mantisas pirmais bits (gandrīz) vienmēr ir 1, tas netiek saglabāts.
- Datu tips “pludiņš” (vai “viens”) ir 32 bitu skaitlis. Arī šeit mazliet tiek izmantots apzīmējums. Tomēr eksponentam ir 8 biti (slīpums = 127) un mantissa 23.
- Datu zīmei mazliet izmanto arī datu tips "dubultā". Tomēr šeit eksponentam ir 11 biti (novirze = 1023), bet mantisai pat 52 biti. Kopumā tas ir 64 biti, t.i., 8 baiti.
- Papildus šiem trim izplatītajiem datu veidiem ir arī daudz vairāk. Tomēr tos lielākoties neizmanto, jo puslaika, pludinātā un divkāršā precizitāte jau ir pietiekami laba.
Pārvērtiet decimālos skaitļus uz peldošā komata skaitļiem - kā tas darbojas
Visbeidzot, mēs vēlētos parādīt, kā jūs varat konvertēt parasto decimālo skaitli uz peldošā komata numuru.
- Šajā piemērā mēs izmantojam decimālo skaitli 18.4. Cipars pirms komata pirmo reizi tiek pārsūtīts uz duālo sistēmu. Rezultātā jums vajadzētu iegūt (10010) ₂.
- Tad jums ir jāpārvērš 0, 4. Vispirms reiziniet koeficientu 0, 4 ar 2. Rezultātā iegūst 0, 8. Pirms komata pierakstiet numuru. Šajā gadījumā tas ir 0. Tad reiziniet 0.8 ar 2. Šoreiz rezultāta rezultāts ir 1, 6. Pierakstiet skaitli 1 un turpiniet aprēķināt ar 0, 6. Pēc kāda laika jūs pamanīsit, ka modelis atkārtojas (šajā piemērā). Visbeidzot pierakstiet visus numurus no augšas uz leju: 011001100110 ...
- Tad pievienojiet skaitļus: Pievienojiet arī (⋅ 2⁰), lai iegūtu 10010.01100110 ... ⋅ 2⁰. Pēc tam pārvietojiet komatu, līdz komata priekšā ir tikai 1, un attiecīgi mainiet arī jaudu. Rezultātā jums vajadzētu iegūt 1.001001100110 ... ⋅ 2⁴, jo esat pārvietojis decimāldaļu 4 vietas pa kreisi. Šo soli sauc arī par "normalizēšanu".
- Šajā piemērā mēs izmantojam datu tipu "pludiņš". Tāpēc savam eksponentam pievienojiet atbilstošu novirzes vērtību. Jums arī jāpārrēķina aprēķina rezultāts 4 + 127 = 131 binārā skaitā. Skaitlis 131 ir skaitlis 10000011 duālajā sistēmā.
- Tagad jūs varat pierakstīt gatavo peldošā komata numuru. Vispirms uzrakstiet zīmes mazliet. Tā kā tas ir pozitīvs skaitlis, pirmais bits ir 0. Tad jums jāraksta 131. Šajā gadījumā viss der perfekti, jo šim skaitlim nepieciešami 8 biti, un pludiņam ir pieejami 8 biti. Visbeidzot, jums ir jāpieraksta pirmie 23 mantisas biti, jo mantissa ir 23 biti pieejami pludiņam.
- Tāpēc jūsu pabeigtajam peldošā komata numuram vajadzētu būt skaitlim 01000001100100110011001100110011. Nedaudz skaidrāks ir skaitlis 0 | 10000011 | 00100110011001100110011.
Pārvērst peldošā komata numuru decimālskaitlī - lūk, kā
Visbeidzot, mēs vēlamies parādīt, kā jūs varat atkal pārveidot peldošā komata skaitli decimālskaitlī. Šim nolūkam mēs ņemam numuru 1000001100100110011001100110011.
- Vispirms numuru (priekšpusi) aizpildiet ar nullēm, līdz iegūstat 16, 32 vai 64 bitu numuru. Šajā gadījumā tas ir 01000001100100110011001100110011.
- Pirmais cipars apzīmē zīmi. Tātad mūsu skaits ir pozitīvs.
- Tad uzrakstiet nākamos (šajā gadījumā) 8 ciparus un atņemiet novirzi. (10000011) ₂ = 131 → 131 - 127 = 4 → Tātad aizmugurē ir "⋅ 2⁴".
- Tagad uzrakstiet “1” un pēc tam visus atlikušos ciparus, kā arī “⋅ 2⁴”: 1.00100110011001100110011 ⋅ 2⁴
- Pēc tam pārvietojiet komatu 4 vietas pa labi, lai varētu izlaist burtu "⋅ 2⋅": 10010.0110011001100110011
- Pēc tam konvertējiet 10010 par veselu skaitli, kā parasti. Jums 18.
- Tagad jums ir jāpārveido decimāldaļas aiz komata. Pirmajam ciparam aiz komata ir vērtība 1: 2¹, otrajam ciparam 1: 2² utt. Pievienojiet vērtības, un skaitlis pirms komata dod skaitli 18.3999996185302734375.
Nākamajā praktiskajā padomā mēs parādīsim, kā jūs varat konvertēt ASCII burtus uz bināriem cipariem.