Kini kini? · bei.pm
Ninu ẹka yii, awọn nkan wa nipa awọn ọna kika faili ati ẹrọ ṣiṣe pada.
Bayi, o jẹ bẹ:
Ọpọlọpọ awọn ede siseto wa ni ita, ati ọpọlọpọ eniyan ni diẹ ninu awọn ohun ti wọn mọ pẹlu orukọ ti o yatọ patapata - tabi paapaa ko ni imọran nipa awọn ipilẹṣẹ ti o ṣe pataki, nitori ede siseto wọn ti yọ awọn nkan yẹn kuro.
tl;dr:
Iṣàkóso mi da lori C99 <stdint.h>
. Ẹnikẹ́ni tó bá lè lo iṣàkóso yìí, yóò lè ní irọrun pẹ̀lú iṣàkóso mi.
Ìtẹ́lọ́run
Integer jẹ awọn nọmba ti a pe ni awọn nọmba pipe, iyẹn ni, awọn nọmba laisi ẹya oniyipada.
Ninu awọn fọọmu data, Integer ti wa ni ibamu ni pato laarin iwọn awọn nọmba kan, gẹgẹ bi ipinnu kan. Mo n tọka si eyi ni Bit - nitori pe "Byte" ati awọn iru ti o da lori rẹ (Word, Qword, ...) ni igbagbogbo da lori pẹpẹ kan.
Pẹlupẹlu, a ṣe iyatọ laarin awọn iru Integer pẹlu nọ́mbà àìmọ́ta (ℕ, iyẹn ni, laisi aami - Unsigned) ati nọ́mbà pipe (ℤ, iyẹn ni, pẹlu aami - Signed).
Alaye yii han nipa aami kan ninu akọle (u
tabi s
).
Ninu eyi, o ṣee ṣe pe awọn nọmba pipe ti o ni aami le jẹ aṣoju bi Einerkomplement tabi bi Zweierkomplement.
Ti ko ba si alaye miiran, Zweierkomplement ni a lo, nitori pe o jẹ aṣoju ti a fẹran ni imọ-ẹrọ ode oni.
Awọn nọmba laisi aami ni a tọka si ninu awọn iwe aṣẹ mi gẹgẹbi uint
, pẹlu alaye ti o tẹle ti ipinnu ni Bits.
Awọn nọmba ti o ni aami ni a tọka si ninu awọn iwe aṣẹ mi gẹgẹbi sint
, bakanna pẹlu alaye ti o tẹle ti ipinnu ni Bits.
Mo yọkuro lati lo iru data "char" fun awọn ohun kikọ, nitori pe awọn okun ohun kikọ nigbagbogbo ṣe aṣoju awọn aṣo-ọrọ Integer pẹlu itumọ pataki kan.
Awọn wọnyi ni a ṣe aṣoju gẹgẹbi uint(8)[].
Àpẹẹrẹ:
Itọka | C99 stdint.h -Iye |
Àpejuwe | Àwọn nọmba |
---|---|---|---|
uint(16) | uint16_t | Integer ti ko ni ami, 16 Bit ipari | 0 - 65.535 |
sint(8) | int8_t | Integer ti o ni ami, 8 Bit ipari, Iwontunwonsi meji | -126 - 127 |
uint(24) | uint32_t:24 | Integer ti ko ni ami, 24 Bit ipari | 0 - 16.777.216 |
Ìtòkasí Ìye Festkomma
Iye Festkomma jẹ́ iye ti o wa ninu apakan ti Iye Racional (Q), ti o ni Koma ati Ibiti Koma.
Ninu Iye Festkomma, - nitori naa ni orukọ naa - ipo koma ti wa ni ṣeto tẹlẹ nipasẹ iru data.
Nitorinaa, o tun fa aaye nọmba kan fun awọn nọmba ti iru data yii; ni iṣiro, aaye nọmba naa jẹ ipin.
Ninu otitọ, iru data yii ni a lo julọ ni awọn pẹpẹ ti ko ni ẹrọ isiro koma ti o yara to, nitori pe iṣiro ti Iye Festkomma le ṣee ṣe nipasẹ awọn ẹya Integer.
Iru data naa tun jẹ lilo fun apẹẹrẹ nipasẹ awọn eto iṣakoso data, nigbati ìbéèrè tó pé gbọdọ ni itẹlọrun.
Ronu fun apẹẹrẹ nipa awọn eto fun fipamọ data iná owó; ọpọlọpọ awọn owó ni a fi lelẹ si awọn ibiti 2 lẹhin koma.
(Sugbon ko tọ lati lo Iye Festkomma fun eyi; o dara julọ lati fi ẹyọ owo kekere julọ pamọ gẹgẹbi Integer ki o si fi iyokù ti ipele ifihan silẹ)
Ní báyìí, bi mo ṣe n sọ nipa awọn ipin Integer, mo n fi ipinnu ti nọmba ní koma han:
ufixed(9,7)
tọka si iru data ti o ni 9 Bit laisi ami fun iye ti o wa niwaju koma, ati 7 Bit fun iye ti o wa lẹhin koma; ni apapọ, o jẹ 16 Bit ni iwọn ati pe o le bo aaye ti (0,0) si (511,127) gẹgẹbi Vectọr ti awọn Integer meji ti ko ni ibatan.
Ṣugbọn, itumọ yii yoo fi 28 awọn nọmba silẹ laisi lilo ninu ifihan rẹ ni decimals, nitori pe a le ni itara lati ni opin si (511,99) ni iṣe.
Ni dipo itumọ taara ti iye Festkomma gẹgẹbi Vectọr ti 2 Integer ti o yapa - eyi fẹrẹ jẹ pe o mu aaye data ti ko ni lilo ni iyipada si awọn nọmba decimals ati gbigbe ọwọ - a le tun tumọ agbegbe koma bi ìpín ti ipinnu lapapọ wọn.
Ní apẹẹrẹ ti ufixed(9,7)
ti a mẹnuba, a ni ipin kan pẹlu denominato ti 27 - aaye nọmba naa lọ lati 0,00 si 511 + 126⁄127
Lati yi pada si ifihan ninu decimals, a gbọdọ pin ipo koma nipasẹ 128.
Pẹlu ẹya yii, o rọrun lati ṣe awọn iṣiro, nitori pe iyipada yoo ṣẹlẹ laifọwọyi, nitorina ẹya yii ni a maa fọwọsi nigbagbogbo.
Ṣugbọn, ẹya yii ni aito pe awọn ibiti koma ninu ifihan decimals ko ni ipinnu ti a fọwọsi mọ, pe aaye decimal kan ko ni iye 0.01
, ṣugbọn ni 0.007874
, eyi ti yoo fa awọn aṣiṣe iyipo to yẹ.
Eyi ti a lo fun itumọ yoo jẹ akọsilẹ ni ibamu si ibi ti a lo.
Àwọn iye Fẹrẹfẹ tàbí Awọn iye Gleitkomma
Iye àkóónú jẹ́ ìṣàkóso ètò ìṣirò tó nira, níbi tí a ti n fi ìṣirò tó dá lórí àkóónú kan hàn pẹ̀lú pé apá àtẹ̀yìnwá jẹ́ àfihàn nípa ìyípadà - tí ó sì ń ráyè yí padà sẹ́yìn ní ìfihàn ìmọ̀ sayensi.
Ọna tó wọ́pọ̀ jùlọ láti ṣe eyi ni a ti ṣe àtúnṣe pẹ̀lú
IEEE 754 àti ó ti jẹ́ ìmúra pẹ̀lú gbogbo ayé.
Nígbà tó bá jẹ́ pé iye àkóónú ni a mọ́ sí ti ẹ̀ka mẹ́ta:
Àmì (0 tàbí 1 ) |
Exponent | Mantissa |
Nígbà tó bá jẹ́ pé àmì náà lè jẹ́ ìmọ̀ràn bí a ṣe lè rí i, iye gangan náà ni a ṣe nípa ìṣirò
Mantissa * 2Exponent
Pẹ̀lú ìyẹn, ó tún wà níbẹ̀ àwọn iye tí kò yí padà tó bo àwọn iṣẹ́ àdájọ́ iṣiro àkóónú pàápàá jùlọ - laarin wọn ni ±∞
àti NaN
("kò sí iye tó péye").
Iye àkóónú jẹ́ wúlò jùlọ nígbà tí ìtóka kò ṣe pàtàkì tó, nítorí pé, pẹ̀lú irú iye bẹ́ẹ̀, ó ti yè kó fa àṣìṣe yípadà, àti bẹ́ẹ̀ ni àìtọ́ka. Àwọn iye àkóónú ni a máa lò, bí àpẹẹrẹ, láti ṣàpèjúwe àwọn kóòdínẹ́ti, gẹ́gẹ́ bí àwọn Vertex-vectors nínú àwọn àwòrán 3D tàbí Bézier/Spline-ìtóka fún àfojúsùn ìfihàn.
Ní àwọn àkóónú data, iye àkóónú ni a sọ pé float(Mantissa, Exponent)
.
Tí a bá lò fọ́ọ́mátì tó yàtọ̀ sí IEEE 754, a máa tọ́ka sí i.