[Powered by Google Translate] JORDAN JOZWIAK: Mota casting, zentzu errazena, da
ordenagailu baten datu batzuk interpretazio aldatzea
inplizituki edo esplizituki bere datu-mota aldatzen ari dira.
Int mugikor bat, edo alderantziz aldatzen, hala nola.
Mota casting ulertzeko, behar dugu
oinarriak hasteko
datu-mota bere burua.
Ordenagailua C bezalako hizkuntzen kasuan, aldagai guztiek dute nolabaiteko
datu-mota zehazten duen ordenagailua, eta, era berean,
erabiltzailea, aldagai hori interpretatzen.
Zenbakizko datuak, hala nola, int luze, float eta mota
bikoitza, denek dute beren ezaugarri berezia da, eta hauek dira
barrutiak eta doitasun desberdinak balioak zehazteko erabiltzen dena.
Koma higikorra duen zenbakia hartu digu bezalako Mota casting esker
3.14 eta zati hamartarra aurretik, 3 kasu honetan,
int bat galdaketa.
Ikus dezagun adibide bat ingelesez labur bat
mota berrikusi, eta casting-mota alda daiteke
datu-pieza bat interpretatu dugu.
Datuak, dezagun sinboloak hemen.
Horiek arretaz konfiguratutako lerro gisa besterik ez dut erreferentzia
sinboloak, baina norbait ingeles hizkuntza ezagutzen,
berehala ezagutzen direla, hain zuzen ere, gutunak.
Inplizituki ulertzen duzu datu-mota.
Looking at letren katea bi ikusi ahal izango dugu
beste hitz batzuekin, bakoitzak bere esanahi propioa.
Noun, haizea, haize kolpeak kanpo.
Eta ez dago aditza, haizea, gisa behar dut
haizeak nire analogikoa watch.
Interesgarri hau adibide bat da, ikusi ahal izango dugu delako
nola gure datuak esleitu dugu, izen edo mota
aditza, aldaketa nola datu horiek erabiltzen ditugu -
haizea edo haize hitza.
Ordenagailu bat ez arren, gramatika eta zatiak buruzko zaintzeko
ahots ingelesa, oinarrizko printzipio bera aplikatzen da.
Hau da, zehatza interpretazioa alda dezakegu
bera memorian gordetako datuak, besterik gabe, galdaketa baten
mota.
Hona hemen ohikoenak mota tamaina 32-bit
sistema eragilearen.
Char byte 1, int eta mugikorrak 4 byte at, luze bat daukagu
luze eta 8 bytes bikoitza.
Int bat hartzen delako 4 bytes, egingo da 32 bit
memorian gordetzen da multzo bitar
zeroen eta direnak.
Gure aldagai mota int, aztarnak
ordenagailua beti bihurtzen dira eta zero horiek
jatorrizko zenbakia sartu bitarrik.
Hala ere, teorian, 32 horiek izan dugu bota
sartu Boolean mota sorta bat bit.
Eta gero, ordenagailua ez jada zenbaki bat ikusi, baina
zeroen eta bai ordez bilduma bat.
Ere saiatu hainbat zenbakizko datuak irakurri ahal izan dugu
idatzi, edo, are gehiago, lau karaktere kate bat bezala.
Casting zenbakiak aurre, kontuan hartu behar duzu
zure balio zehaztasuna eragin egingo da.
Gogoan izan, doitasun berean gera daitezke,
edo doitasun galtzen dezakezu, baina inoiz ez duzu doitasun irabazteko.
Goazen, hiru ahal duzun modu ohikoena
galtzen doitasun.
Int bat mugikor bat Galdaketa guztiaren truncation sor
du dezimal ondoren, eta, beraz, zu utzi
zenbaki osoa.
Hartuko dugu float x 3,7 berdinak dira bada, bota dezakegu
int bat x aldagai hau, besterik gabe, int idatziz
Parentesi.
Ahal den epe hau erabiltzen dugu hemen, modu eraginkorrean dizkizugu
hiru balioa erabiltzen dugu trunkatuta delako
du dezimal ondoren guztia.
Int bat bihurtzen luze bat ere egin ahal izango dugu, eta hori izango da
era berean, goi-ordena bit galera ekarriko.
Luze bat hartzen du, 8 byte, edo 64 bit memorian.
Beraz, int 4 byte, edo 32 bat bakarrik botatzen dugu
bit, funtsean ari gara off Tajadura bit hori guztia
ordezkatzen binary balio handiagoa.
Dezakezu ere bota bikoitza mugikor bat, hau da, ematen
karroza bikoitza hurbilena posible gabe
nahitaez biribilketak.
Int bihurketa gure denbora luzean, galera Similar
doitasun bikoitza dauka datu gehiago delako.
Bikoitza 53 esanguratsua bit gordetzeko aukera emango dizu.
gutxi gorabehera 16 digituak esanguratsua.
Mugikor bat bakarrik izango, berriz, baimendu 24 gordetzeko
bit esanguratsuak, gutxi gorabehera zazpi digituak esanguratsua.
Azken bi kasu horiek, oso erabilgarria izan daiteke, eta uste
idatzi casting tamainaz aldatu argazki bat.
Tamaina handi bat joaten da tamaina txiki bat, ezin duzu ikusi
gauzak argi eta garbi duelako datuak galdu duzu
pixel.
Mota casting arazoak sor ditzakete, dugunean
cast ints karroza.
32-bit makina bat karroza besterik ez geroztik, 24
esanguratsua bit, ezin dira zehaztasunez irudikatzeko balio
2 baino gehiago, 24, edo 16777217 boterea.
Esplizitua eta inplizitua casting buruz hitz egin.
Explicit casting-mota parentesi artean idazten dugu
Aldagai izen bat aurretik.
Adibide bezala, idatzi aurretik parentesi artean int aurretik gure
flotatzen x aldagaia.
Modu honetan, int balioa lortuko dugu,
trunkatuta balioa 3,7 -
3.
Inplizituak casting konpilatzailea automatikoki aldatzen da
antzeko mota super mota bat, edo beste batzuk sort egiten
Erabiltzaile idatzi beharrik gabe galdaketa
kodea edozein gehigarria.
Esate baterako, 5 eta 1.1 gehitzen badiogu, gure balioak dagoeneko
haiekin lotutako mota.
5 int bat da, 1.1 mugikor bat da, berriz.
Gehi, ordenagailu mugikor bat sartu akatsik 5
5.0 idazteko gauza bera izan zen
Lehenik eta behin.
Baina era honetan karroza 5, edo 5.0, plus zer esan dugu dagoeneko
mugikor bat, 1.1, eta han benetan dezakegu gehitu hauek
balioak eta balio 6,1.
Inplizituak casting ere, aukera ematen du aldagai esleitzeko
mota ezberdinak elkarren artean.
Mota zehatz bat gutxiago gehiago batean esleitu ahal izango dugu beti.
zehatz bat.
Esate baterako, bikoitz bat dugu x, int y bat izanez gero -
eta balio horiek edozein ezarri ditugu izan
x berdin y esan dezakegu.
Int bat baino gehiago doitasun bikoitza delako, eta, beraz dugu
ez du inolako informazioa galtzea.
Beste alde batetik, ez luke zertan zuzena esan
y funtzioak x, bikoitza balioa baino handiagoa izan leza
osokoa.
Eta, beraz, baliteke osokoa ez guztiak eduki ahal izango
bikoitza gordetako informazioa.
Inplizituak casting alderatuz operadoreak ere erabiltzen den antzera.
baino handiagoa, baino txikiagoa da, edo berdintasun-operadorea.
Horrela, 5,1 bada esan dezakegu 5 baino handiagoa da, eta lortuko dugu
ondorioz, egia da.
5 int bat delako, baina mugikor bat egingo bota ahal izateko
mugikorra 5.1 aldean, esan 5,1 genuke
5,0 baino handiagoa.
Gauza bera gertatzen da egia 2.0 berdin berdin 2 bada esaten.
Egia ere genuke urtu egingo delako, ordenagailua
osokoa 2 flotatzen eta, ondoren, esan 2.0 berdin berdin 2,0,
hau ez da egia.
Ez ahaztu ere ints eta karakteretan arteko cast,
edo ASCII balio.
Chars ere behar binary murriztu, zergatik duzu
karakteretan eta beren arteko erraz bihurtzeko
ASCII balioak.
Gehiago jakiteko honi buruz, check out gure bideoa ASCII.
Denbora pixka bat beharko duzu datuak nola gordeta pentsatu,
Zentzu asko bat egiteko hasten da.
Haizea eta haizearen arteko aldea besterik ez bezalakoa da.
Datuak berbera da, baina mota alda daiteke nola
interpretatzeko.
Nire name Jordan Jozwiak, cs50 hau da.