X'inhu x'inhu? · bei.pm
F'din ir-ruħ, hemm articoli dwar formati ta' fajls u Reverse Engineering.
Iżda issa huwa hekk:
Hemm ħafna lingwi ta' programmazzjoni hemm barra u ħafna nies li jafu ċerti affarijiet b'isimijiet kompletament differenti - jew m'għandhom l-ebda idea dwar l-eżistenza ta' affarijiet fundamentali, għax il-lingwa ta' programmazzjoni tagħhom tneħħi dan minnhom.
tl;dr:
Moħtija tiegħi hija bbażata b'mod ġenerali fuq C99 <stdint.h>
. Min għandu xi ħaġa biex jifhem din il-moħtija, żgur se jkollu jagħmel tajjeb mal-moħtija tiegħi.
Intero
Integer huma b'mod sempliċi n-numri sħaħ, jiġifieri n-numri mingħajr parti decimali.
Barra min hekk, l-integers fil-formati tad-data ġeneralment huma definiti fi spettro fiss ta' numri, bħal raġġ, u dan nindika fil-bit - minħabba li "Byte" u tipi oħra bbażati fuqhom (Word, Qword, ...) huma ġeneralment dipendenti mill-pjattaforma.
Il-kategoriji ta' Integer jinkludu wkoll numri naturali (ℕ, jiġifieri, mingħajr sinjal - Unsigned) u numri sħaħ (ℤ, jiġifieri, b'sinjal - Signed).
Din l-informazzjoni tidher permezz ta' sinjal fil-identifikatur (u
jew s
).
Huwa possibbli li n-numri sħaħ bi sinjal jiġu rappreżentati bħala komplement wieħed jew bħala komplement tnejn.
Sakemm ma jkunx indikat mod ieħor, il komplement tnejn jintuża, peress li huwa l-preferenza attwali fl-informatika moderna.
In-numri mingħajr sinjal jiġu indikati minn naħa tiegħi fid-dokumenti tiegħi bħala uint
, bil-punt ta' preċiżjoni sussegwenti f'Bits.
In-numri bi sinjal jiġu indikati minn naħa tiegħi fid-dokumenti tiegħi bħala sint
, bl-istess mod bil-punt ta' preċiżjoni sussegwenti f'Bits.
Jien ma nużax it-tip ta' data "char" għal karattri, minħabba li l-kettijiet ta' karattri ġeneralment jirrappreżentaw biss kikkri ta' valuri Integer b'interpretazzjoni speċjali.
Għalhekk, dawn jiġu rappreżentati bħala uint(8)[].
Eżempji:
Notazzjoni | C99 stdint.h -Ekwivalenti |
Deskrizzjoni | Spazju ta' Numri |
---|---|---|---|
uint(16) | uint16_t | Integer Mingħajr Sinsla, Tul ta' 16 Bit | 0 - 65.535 |
sint(8) | int8_t | Integer Bil-Sinsla, Tul ta' 8 Bit, Komplement ta' Żewġi | -126 - 127 |
uint(24) | uint32_t:24 | Integer Mingħajr Sinsla, Tul ta' 24 Bit | 0 - 16.777.216 |
Valuri ta' Festkomma
Valuri tal-Punt Fiss huma valuri numeriċi mis-spektrum tal Numeri Razzjonali (Q), li għalhekk għandhom punt u deċimali.
Għall-valuri tal-punt fiss, il-pożizzjoni tal-punt hija definiti minn qabel mill-tip ta’ data - għalhekk ukoll isem.
Minħabba dan, jinkiseb ukoll firxa stabbilita ta’ numri għal dawn il-valuri tat-tip; matematikament espressa, il-firxa tal-valuri hija finita.
F'realtà, dan it-tip ta’ data jintuża l-aktar f'pjattaformi mingħajr biżżejjed ħardwer veloċi tal-punt flottanti, peress li l-kalkolu tal-valuri tal-punt fiss jista’ jsir permezz ta’ unitajiet ta’ integer.
Barra minn hekk, it-tip ta’ data jintuża, pereżempju, minn sistemi ta’ ġestjoni tad-dejta meta rekwiżiti stabbiliti jridu jiġu sodisfatti.
Pensaw, pereżempju, fis-sistemi għall-ħażna permanenti ta’ dejta finanzjarja; l-aktar muniti jinqatgħu għal 2 deċimali wara l-punt.
(Ma' dan, mhu wisq għaqli li titqies valuri tal-punt fiss; aktar għaqli hu li jżomm direttament l-iżgħar unità monetarja bħala integer u jħalli l-bqija tal-livell ta’ rappreżentazzjoni).
Analogament għall-indikazzjonijiet tal-integer, jien nindika l-għolja tal-valur tal-punt fiss qabel u wara l-punt:
ufixed(9,7)
jiddeskrivi tip ta’ data li għandu 9 bit mingħajr sinjal għall-valur qabel il-punt, kif ukoll 7 bit għall-valur wara l-punt; għalhekk huwa 16 bit fil-wisa' u jista’ jkopri firxa ta’ (0,0) sa (511,127) bħala vettur ta’ żewġ integers indipendenti.
Ikkonvertirha f'rappreżentazzjoni deċimali, madankollu, din l-interpretazzjoni se tbiddel 28 numri mhux użati, peress li probabbilment jiġu limitati sa (511,99) fil-prattika.
Minflok interpretazzjoni dritt tal-valur tal-punt fiss bħala vettur ta’ 2 integer separati - li kważi dejjem ifisser firxa ta’ data mhux użata meta jkunu konvertiti f'numeri deċimali u trasferiment manwali - jista’ wkoll jiġu interpretat il-qasam deċimali bħala frazzjoni tal-għolja kollha tagħhom.
Fil-każ ta’ ufixed(9,7)
imsemmi qabel, jinkiseb frazzjoni b’denominatur ta’ 27 - il-firxa tal-valuri tmur minn 0,00 sa 511 + 126⁄127
Għal konverżjoni f'rappreżentazzjoni deċimali, il-post deċimali għandu jiġi diviż b’128.
Bl-aħħar varjant, huma aktar faċli tħaddem operazzjonijiet ta’ kalkolu, peress li l-trasferiment huwa awtomatiku, li jagħmel dan il-varjant mħeġġeġ ħafna drabi.
Madankollu, din il-varjant għandha l-iżvantaġġ li l-postijiet deċimali f'rappreżentazzjoni deċimali m'għandhomx aktar garanzija ta’ għolja, għalhekk post deċimali wieħed m'għandux aktar valur ekwivalenti ta’ 0.01
, iżda 0.007874
, li se jwassal għal żbalji ta’ rotondazzjoni.
L-interpretazzjoni li tintuża tiġi dokumentata skont il-post ta’ użu.
Valuri ta' Flusskomma jew Gleitkomma
Valuri fluss huma espressjonijiet matematiċi aktar kumplessi, fejn numru sħiħ b'risoluzzjoni fissa jiġi espress permezz ta' terminu matematikali b'mod li l-parti wara l-koma tiġi ffurmata permezz ta' spostament - u b'hekk tirrifletti direttament fuq notazzjoni xjentifika.
Il-mod l-aktar komuni biex dan jiġi implimentat ġie standardizzat mill
IEEE 754 u sa minn dakinhar huwa rikonoxxut internazzjonalment.
F'dan il-kuntest, valur fluss normalment jikkonsisti mill-komponenti li ġejjin:
Sinjal (0 jew 1 ) |
Esponent | Mantissa |
Waqt li s-sinjal jista' jiġi infurmat faċilment bħala informazzjoni binarja Iva/Le, in-numru veru jiġi ffurmat permezz tal-eguazzjoni
Mantissa * 2Esponent
Addizzjonalment, hemm numru ta' valuri kostanti li jkopru każijiet speċjali ta' numri razzjonali - fosthom ±∞
u NaN
("m'hemmx numru validu").
Valuri fluss huma partikolarment utli meta il-preċiżjoni m'għandhiex tkun tant importanti, peress li għal din it-tip ta' valuri inevitabbilment iseħħu żbalji ta' tondar u għalhekk titnaqqas il-preċiżjoni. Normalment, valuri fluss jintużaw għal eżempju biex jiddefinixxu koordinati, bħal vetturi tal-vertice f'mudelli 3D jew kurvi Bézier/Spline għal skopijiet ta' rappreżentazzjoni ottika.
F'formati tad-data, valuri fluss jiġu speċifikati bħala float(Mantissa, Esponent)
.
Jekk format li jiddifferixxi minn IEEE 754 jintuża, dan jiġi indikat skont.