Mii lea mii? · bei.pm

Dátteáhkka lea automáhtalaš gássa OpenAI GPT-4o Mini-juvvon.

Skáldda dehálašvuođa lea artiklaid datalaš formála ja reverse engineering áššiid.

Dát lea nu,
Dat lea muorrá, mii lea máŋga programmaspáhkká, ja máŋga olbmot, mii álo dakkár áššiid čállet guovttos áššis - dehálaš ii jáhkká dakkár áššiid eahpáiváldu, go leuru programmaspáhkká lea dán gohtu.

tl;dr:
Mii notáhtta lea gávdnojit C99 <stdint.h> mátkku. Dát mátkku, go son lea mii notáhtta dakkár, gohčodit mii notáhtta.

Bearra

Integer leat dehálaš go dan hálidit, dehálaš čuovvot go dušše čuoŋomáŋga.

Maŋŋá Integer lea dátadovdatnasa mearridit fástádus távvalusa, dehálaš go deatnuhit bit. Dat lea nu ahte "Byte" ja daid bealasbassiid (Word, Qword, ...) lea dehálaš go mearridit platformaheaddji.

Álggu go Integer-tipeaset, lea ožžon muhtun náturála čuovvot (ℕ, dehálaš, without sign - Unsigned) ja báhččá čuovvot (ℤ, dehálaš, mii sign - Signed).
Dažat máŋga lea go mii geavahat signala mii bealehusa (u eller s).

Maŋŋá lea mii ávkkustit signalaheaddji báhččá čuovvot vai go Einerkomplement ja Zweierkomplement.
Deit go muhto dán ávvut, lea Zweierkomplement veahkkin, dehálaš go dat lea modernan informatihkká dehálaš geavahus.

Signalaheaddji čuovvot lávdda mun mu dokumentačáhkkima ja čuoŋomáŋga muhtun uint geavahat, dehálaš go geavahat njuohkkain Bits.
Signalaheaddji čuovvot lávdda mun mu dokumentačáhkkima ja geavahat go sint, dehálaš go geavahat njuohkkain Bits.

Mun čuohkkan datatypen "char" go čuoŋomáŋga, dehálaš go čuoŋomáŋga čuovvot mearridit dehálaš go dan hálddahaga integer-válttain.
Dádat daid geavahat go uint(8)[].

Boaris:

Notation C99 stdint.h-geavdnan Beskrivvuo Čáhppesrievddu
uint(16) uint16_t Užžon ráhkis, 16 bit duodda 0 - 65.535
sint(8) int8_t Ráhkis, 8 bit duodda, duovdaskompakt -126 - 127
uint(24) uint32_t:24 Užžon ráhkis, 24 bit duodda 0 - 16.777.216

Festkomma-várddu

Fiksakomavaldot lea čuovvot valddat geavahit ratiovaldot (Q), mii vuođđun komma ja náhkomaš váldod.

Čuovvot valddut lea - dán dihto ášši - kommas position lea datatypen mielde fiksu.
Dáiddá lea fiksu čuovvot valddat datatypen mielde; matematikalas ášši lea čuovvot mearkaš.

Dearvvaheami lea dán datatypen veahkkin duohken platformaide, mii eai leat háliiddu fasttalaš fiksakomavaldot, nu ahte fiksakomavaldot sáhttet muhtun integer-váldod.

Dát datatypen lea mii dáhpáhusdataboard-johtimiid, go fiksat áššiid leat dakkáha.
Maiddái čájehit dáhpáhusdataboard-johtimiid, mii heivehuvvat finanšvárra; maŋŋá máŋga riekta beassat 2 váldod kommas. (Dáhpáhus lea eai máhtte, ahte fiksakomavaldot sáhttet; dakkár lea muhtin, ahte dakkár minkka riekta muhtum integer ja lea jearrat dakkár váldodat)

Analogalaš integer-base dohkki, čuovvot valddot ráhkadit fov ja nakk kommas:
ufixed(9,7) lea datatypa, mii eai máhkere 9 bit valddon kommas, ja 7 bit valddon nakas; dakkár lea 16 bit, ja dán áhtahu dakkár veahka duohken integer muhtun, go dáhpáhu (0,0) go (511,127)
Dán álgoaš šat eai válddáhe 28 čuovvot dakkár decimal-váldodat, dahje mii čuovvot muhtun duohken (511,99) veahkkin.

Maiddái dehálaš direct dohkki fiksakomavaldot go 2 muhtun integer - ahte dán álgga lea dakkár dakkár daid beassat decimal-váldodat ja manuálalaš jearrá - sáhttet dehálaš nakasvalddot go ruhtad dihte dakkár ráhkadit.
Maiddái čuovvot ufixed(9,7) dakkár ruhtad, dakkár ruhtad 27 - čuovvotvárra lea 0,00 go 511 + 126127 Dehálaš decimal-váldodat go nakasvalddot lea 128.
Dán álgga lea geavahit jearrat, nu ahte jearrá lea muhtun, ahte dán álgga lea beare.
Dán álgga lea muhtun, ahte nakasvalddot eai leat muhtun decimal-váldodat, dakkár eai lea 1 decimalvaš 0.01, ahte 0.007874 lea, mii čuovvot ášši ja dakkár jearrágottin.

Mii dohkki geavahit, go mun áiggo dakkár beassit ahte lea dakkár.

Liikkamárkku- ja gávdno-márkku váldit

Fließkomma-váldit lea matemáhtala gávdnošvuohta, mii goitnaga gávdnoráhkka mii lea fiksu máŋga ja mii eará matemáhtala termi, ahte effektívt áhččui jápmu-gávdnoráhkka eará hávddit - ja se eará hávddit ja scientific notation viidá.
De gávdnošvuohta, mii lea šaddet, lea válddejuvvon IEEE 754 ja lea nugo viđđi maŋŋá.

Dán geavahit, Fließkomma-váldit lea nugo dušše gávdnoráhkkaid:

Válddi (0 või 1) Exponential Mantisse

Dákkár válddi lea binárala ja/nei-čuohtas, mii se eará hávddit gávdnoráhkka
Mantisse * 2Exponential

Bohtet lea maiddái gávdnot konstantta válddá, mii áššit special-váldit rationala váldit - máŋga ±∞ ja NaN ("ikká vádjat válddi").

Fließkomma-váldit lea muhto go nugo vádjaga ii lea de geavhččat, ahte dán válddaga mii dan go gávdnoráhkkaid ja de geavhččat. Typiská Fließkomma-váldit eará goitnaga geavdnot geavttá, nugo Vertex-vektorat 3D-máhtasaid ja Bézier-/Spline-kurvvat optihka gávdnoráhkkaid.

Datadánnasaid lea Fließkomma-váldit gávdnoráhkka float(Mantisse, Exponential) geavdnet.
Dákkár go dán IEEE 754 váldda válddit, de lea dán geavdnet.