Dè tha ann? · bei.pm
Anns an seo raon tha artaigilean mu fhilleadh faidhlichean agus innleadaireachd air ais.
Ach, tha e mar seo:
Tha grunn chànanan prògramaidh ann an seo agus tha mòran dhaoine a' toirt iomradh air cuid de rudan le ainmichean gu math eadar-dhealaichte - no eadhon gun fhios aca mu dheidhinn a' chudthromachis as bunaitiche, oir tha an cànan prògramaidh aca a' toirt air falbh iad bho na rudan sin.
tl;dr:
Is e mo notachadh gu h-iomlan a tha freagairte do C99 <stdint.h>
. Ma tha duine sam bith comasach air rudeigin a thuigsinn leis an notachadh seo, thèid e gu furasta le mo notachadh fhèin.
Àireamh
Integer tha iad dìreach na h-àireamhan iomlan, is e sin, àireamhan gun phàirt de gach.
Tha Integer ann an cruthan dàta gu h-àraidh air an làn sreath àireamh, a’ feuchainn ri rùn a chomharrachadh. Tha mi ga chomharrachadh ann an Bit - air sgàth gu bheil "Byte" agus seòrsaichean a thèid air adhart (Word, Qword, ...) gu h-àraidh freagairteach do na h-ùghdaran.
A bharrachd air sin, tha eadar-dhealachaidhean ann cuideachd eadar seòrsaichean Integer àireamhan nàdarra (ℕ, is e sin, gun shoidhnigeadh - Unsigned) agus àireamhan iomlan (ℤ, is e sin, le soidhnigeadh - Signed).
Tha an fiosrachadh seo air a chomharrachadh le soidhnigeadh anns an ainm (u
no s
).
Tha e comasach gu bheil àireamhan iomlan le soidhnigeadh air an sealltainn mar aon-chomplasan no mar dà-chomplasan.
Fhad 's nach eil e air a chomharrachadh gu eadar-dhealaichte, thèid an dà-chomplasan a chleachdadh, oir is e seo an sealladh a tha air a mholadh ann an saidheans fhiosrachaidh.
Tha àireamhan gun soidhnigeadh air an toirt fa-near leam anns na sgrìobhainnean agam mar uint
, le freagairtean air an mholadh ann an Bits.
Tha àireamhan le soidhnigeadh air an toirt fa-near leam anns na sgrìobhainnean agam mar sint
, cuideachd le freagairtean air an mholadh ann an Bits.
Tha mi a' diùltadh a' cleachdadh an seòrsa dàta "char" airson charactaran, oir tha sreathan charactar gu h-àraidh nan sreathan luach Integer le eadar-mhìneachadh sònraichte.
Thèid iad a thaisbeanadh mar uint(8)[].
Exemple:
Notaichean | C99 stdint.h -Freagairte |
Tuairisgeul | Raon Àireamh |
---|---|---|---|
uint(16) | uint16_t | Àireamh Neo-shònraichte, 16 Bit Fada | 0 - 65.535 |
sint(8) | int8_t | Àireamh Shònraichte, 8 Bit Fada, Ceangal Dà-phàirteach | -126 - 127 |
uint(24) | uint32_t:24 | Àireamh Neo-shònraichte, 24 Bit Fada | 0 - 16.777.216 |
Luachan Comharra-Fèis
Luachan fèin-fixed tha iad nan luachan àireamhach bho speactram Àireamhachd Ràitheil (Q), a tha mar sin le comharran agus àireamhachadh às dèidh.
Tha an suidheachadh de na comharran ann an luachan fèin-fixed - mar sin cuideachd an t-ainm - air a shuidheachadh gu seasmhach le seòrsa dàta.
Mar thoradh air sin, tha raon àireamhach seasmhach ann airson àireamhan den t-seòrsa dàta seo; ann an cruth matamataigeach, tha an raon àireamhach fheàrr.
Anns an fhìor shaoghal, tha an seòrsa dàta seo air a chleachdadh gu mòr air àrd-ùrlaran gun uidheam freagairtean àireamhach gu leòr, leis gu bheil an cunntas air luachan fèin-fixed comasach le nìean àireamhach.
Tha an seòrsa dàta cuideachd air a chleachdadh le siostaman rianachd stòrasan, nuair a tha riatanasan seasmhach a dhìth.
Bu chòir dhut smaoineachadh air siostaman airson stòradh seasmhach de dh'ìomhaighean maoin; tha a’ mhòr-chuid de na h-airgead a’ crìochnachadh air 2 àireamh às dèidh na comharran.
(Ach, chan eil e glic na luachan fèin-fixed seo a chleachdadh; tha e nas fheàrr, gu dearbh, an eun-èifeachd as lugha a stòradh mar nì àireamhach agus an còrr den ìomhaigh a leigeil às)
Mar an ceudna ris na freagairtean àireamhach, tha mi a’ toirt seachad an rùn de na luachan fèin-fixed ro agus às dèidh na comharran:
ufixed(9,7)
a’ comharrachadh seòrsa dàta a tha gun chomharran 9 Bit airson an luach ro na comharran, agus 7 Bit airson an luach às dèidh na comharran; gu h-iomlan, tha sin 16 Bit de leud, agus mar sin, mar eisimpleir, mar vèctar de dhà nìean àireamhach neo-eisimeileach, faodaidh e raon de (0,0) gu (511,127) a chòmhdach.
Ach, dh’fhaodadh an eadar-mhìneachadh seo 28 àireamh a chaitheamh às a’ chothromachadh, oir dh’fhaodadh gu bheil thu a’ cur às do na h-àireamh a tha ann an practaic (511,99).
An àite eadar-mhìneachadh direach air a’ luach fèin-fixed mar vèctar de 2 nìean àireamhach air leth - a tha gu mòr a’ ciallachadh raon dàta nach eil air a chleachdadh nuair a thèid a thionndadh gu àireamhachd dhen seòrsa - faodar cuideachd an raon às dèidh na comharran a mhìneachadh mar briseadh air an rùn gu lèir.
Mar eisimpleir, leis an ufixed(9,7)
air a thogail, tha briseadh a’ nochdadh le nèimhse air 27 - tha an raon àireamhach a’ dol bho 0,00 gu 511 + 126⁄127
Airson a thionndadh gu àireamhachd, bu chòir a’ mhion-ìomhaigh a roinn le 128.
Leis an dreach seo, tha e nas fhasa freagairtean a dhèanamh, oir chan eil feum air freagairtean a thionndadh gu fèin, a’ dèanamh an dreach seo gu h-àraidh leasachadh.
Ach, tha an dreach seo a’ nochdadh droch dhuilgheadas, le mion-àireamh nach eil nas urrainn dha a bhith ann an àireamhachd seasmhach, mar sin cha bhith àireamh mionaideach a’ freagairt 0.01
, ach 0.007874
, a bheir gu freagairtean ceàrr.
Cia de dhòigh eadar-mhìneachaidh a thathar a’ cleachdadh, thèid a dhòigh a dh’fhaicinn aig an àite far a bheil e air a chleachdadh.
Luachan Fliuch-ghearraidh no Gleit-ghearraidh
Àireamhan freagairte tha iad nan abairtean matamataigeach nas duilghe, far a bheil àireamh shòlaimte le fuasgladh seasmhach air a nochdadh tro thomhas matamataigeach ann an dòigh a leigeas le pàirt an deiridh a bhith air a chruthachadh le gluasad - agus tha iad sin gu h-iomlan freagairte don notation saidhbear.
Tha an dòigh as cumanta airson seo a chuir an gnìomh air a h-ìsneachadh le
IEEE 754 agus tha e air a dhearbhadh gu h-iomlan air feadh an t-saoghail.
Mar as trice tha àireamh freagairte air a dhèanamh suas de na leanas:
Soidhne (0 no 1 ) |
Exponent | Mantissa |
Fhad ’s a ghabhas an soidhne a thoirt gu buil mar fhiosrachadh binary Tha/Nì, tha an àireamh fhìor air a chruthachadh leis an cothrom
Mantissa * 2Exponent
A bharrachd air seo, tha sreath de luachan seasmhach ann a tha a’ còmhdach cùisean sònraichte àireamhan freagairte - nam measg ±∞
agus NaN
("àireamh nach eil dligheach").
Tha àireamhan freagairte gu sònraichte feumail nuair chan eil an cruinneas cho cudromach, oir bidh e mar thoradh air an seòrsa luach seo gu h-iomlan le mearachdan cruinneachaidh agus mar sin le call cruinneas. Mar as trice, thathar a’ cleachdadh àireamhan freagairte, mar eisimpleir, airson mìneachadh air co-òrdanadan, leithid freagairtean Vertex ann an modalan 3D no líntean Bézier/Spline airson adhbharan riochdachaidh lèirsinneach.
Ann an cruthan dàta, tha àireamhan freagairte air an sònrachadh mar float(Mantissa, Exponent)
.
Mura h-eil cruth a’ cleachdadh IEEE 754, tha sin air a thogail gu freagairteach.