Hvat er hvat? · bei.pm
Í þessum flokki eru greinar um skráarsnið og afturhönnun.
Nú er svo:
Það eru margir forritunarmál úti í heimi og margir menn, er þekkja sumar hluti undir algerlega öðrum nöfnum - eða hafa jafnvel enga hugmynd um tilvist grundvallarhluta, því forritunarmál þeirra hefur dregið það frá þeim.
tl;dr:
Mín skrift er groflega byggð á C99 <stdint.h>
. Sá er getur skilið þessa skrift, mun örugglega kunna að vinna með mína skrift.
Heill
Heildar eru einfaldlega heiltölur, þ.e. tölur án aðskilnaðarhluta.
Heildar eru oftast skilgreindar í gagnasniðum innan fasts tölusviðs, eiginlega eins konar upplausn. Ég gef þetta upp í bitum - vegna þess að "Byte" og afleiður þess (Word, Qword, ...) eru yfirleitt háð pallinum.
Auk þess er aðgreining á heildartypum á milli náttúrulegra talna (ℕ, þ.e. án merki - Unsigned) og heildartalna (ℤ, þ.e. með merki - Signed).
Þessi upplýsingar eru sýnilegar í merki í auðkenni (u
eða s
).
Þar að auki er mögulegt að merktar heiltölur séu annað hvort sýndar sem einnkomplement eða sem tvökomplement.
Svo fremi að annað sé ekki tilgreint, er tvökomplement notað, þar sem það er eftirsóknarverðasta framsetningin í nútíma tölvunarfræði.
Ómerktar tölur eru gefnar upp af mér í mínum skjölum sem uint
, með því að gefa skýringu á nákvæmni í bitum.
Merktar tölur eru gefnar upp af mér í mínum skjölum sem sint
, einnig með skýringu á nákvæmni í bitum.
Eg sleppi því að nota gagnagerðina "char" fyrir tákn, þar sem táknaröð er venjulega aðeins heill töluröð með sérstakri túlkun.
Þessar eru því sýndar sem uint(8)[].
Dæmi:
Notation | C99 stdint.h -Jafnverð |
Skýring | Tölurými |
---|---|---|---|
uint(16) | uint16_t | Ómerkt Heiltala, 16 Bita Lengd | 0 - 65.535 |
sint(8) | int8_t | Merkt Heiltala, 8 Bita Lengd, Tvígildis | -126 - 127 |
uint(24) | uint32_t:24 | Ómerkt Heiltala, 24 Bita Lengd | 0 - 16.777.216 |
Festráð-Werðr
Fastrunur-tölur eru tölur úr sviði Raunatala (Q), sem hafa komma og eftirkomma.
Við fastrunur-tölur er - þess vegna nafnið - staða kommu ákveðin af gagnategundinni.
Þannig leiðir það einnig til fasts tölusviðs fyrir tölur þessa gagnategundar; í stærðfræðilegu samhengi er tölurýmið endað.
I raunveruleikanum er þessi gagnategund aðallega notuð á vettvangi þar sem ekki er nægjanlega hröð fljótandi kommu-hardware, þar sem útreikningar á fastrunur-tölum geta farið fram með heiltölum.
Auk þess er gagnategundin notuð af gagnagrunnsstjórnunarkerfum þegar fastar kröfur þurfa að vera uppfylltar.
Hugsaðu til dæmis um kerfi fyrir varanlega geymslu fjármálatala; flestar gjaldmiðlar takmarka sig við 2 stöðvar eftir kommu.
(Það er þó ekki skynsamlegt að nota fastrunur-tölur fyrir þetta; skynsamlegra er að geyma minnstu gjaldmiðlareininguna beint sem heiltölu og láta restina af framsetningunni).
Sambærilegt við heiltölu-tilkynningar gef ég upp upplausn tölunnar fyrir og eftir kommu:
ufixed(9,7)
táknar gagnategund sem geymir 9 bita fyrir gildið fyrir kommu, og 7 bita fyrir gildið eftir kommu; í heildina er það 16 bita breitt og getur því dæmi verið sem vektor tveggja sjálfstæðra heiltala sem nær frá (0,0) til (511,127).
Þessi túlkun myndi þó í sínum tugum gefa upp 28 tölur ónotaðar, þar sem fólk myndi líklega frekar takmarka sig við hámark (511,99) í raunveruleikanum.
Í stað þess að túlka fastrunur-töluna beint sem vektor úr 2 aðskildum heiltölum - sem nánast alltaf leiðir til ónotaðs gagnasvæðis við umbreytingu í tugatölur og handvirkan flutning - má einnig túlka eftirkomma-svæðið sem brot af heildarupplausninni.
Þannig kemur í ljós að samkvæmt því sem áður var nefnt ufixed(9,7)
er brot yfir nefnara af 27 - tölusviðið fer þá frá 0,00 til 511 + 126⁄127
Til að umbreyta í tugatölu væri því eftirkomma-staðan skipt með 128.
Með þessari útgáfu er auðveldara að framkvæma útreikninga, þar sem flutningurinn kemur sjálfkrafa, þannig að þessi útgáfa er að jafnaði valin.
Þessi útgáfa hefur hins vegar þá ókosti að eftirkomustiginn í tugatölum hefur ekki lengur tryggða upplausn, einasta tugastaða hefur því ekki lengur þá gildi 0.01
, heldur 0.007874
, sem mun leiða til viðeigandi rundunarvilla.
Hvaða túlkunaraðferð er notuð, er skráð á viðkomandi stað.
Flotgildi eða Gleitgildi
Flæðitölur eru matematiskt flóknari orð, þar sem heiltala með föstu upphafi er sett fram með matematisku hugtaki, svo að aðskiljanlegur hluti sé myndaður með að færast - og er því beint tengdur vísindalegri táknsetningu.
Algengasta leiðin til að framkvæma þetta var staðfest með
IEEE 754 og hefur síðan verið alþjóðlega viðurkennd.
Flæðitölur samanstendur venjulega af eftirfarandi þáttum:
Merki (0 eða 1 ) |
Vísir | Mantissa |
Þó að merki sé einfaldlega skilið sem tvíundar Já/Nei-upplýsingar, myndast raunverulega talan með jöfnunni
Mantissa * 2Vísir
Auk þess eru til röð stöðuætlana gilda sem dekka sérstaka tilvik rationalra talna - þar á meðal ±∞
og NaN
("ekki gild tala").
Flæðitölur eru sérstaklega gagnlegar þegar nákvæmni er ekki svo mikilvæg, þar sem þessi tegund gilda leiðir óhjákvæmilega til hringfarsvilla og þar af leiðandi nákvæmni-taps. Venjulega eru flæðitölur notaðar til dæmis til að skilgreina hnit, eins og hornvektora í 3D-líkönum eða Bézier-/Spline-kúrvur fyrir sjónrænar framsetningar.
Í gögnunotkun er flæðitölur skilgreindar sem float(Mantissa, Vísir)
.
Ef annað form en IEEE 754 er notað, er það tilgreint í samræmi við það.