Dè tha ann? · bei.pm

Chaidh an teacsa seo a thionndadh gu fèin-ghluasadach le OpenAI GPT-4o Mini.

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 + 126127 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.