[Powered by Google Translate] ĠORDAN JOZWIAK: ikkastjar Tip, fis-sens sempliċi, huwa
mod biex tbiddel l-interpretazzjoni tal-kompjuter ta 'xi data minn
impliċitament jew espliċitament bdil tad-data tip tiegħu.
Bħal jinbidlu l int għal float, jew viċi versa.
Biex tifhem ikkastjar tat-tip, għandna bżonn li
tibda bil-punti bażiċi -
tipi ta 'data nfushom.
Fl-lingwi tal-kompjuter bħal C, il-varjabbli kollha għandhom xi tip
ta 'data tat-tip li jiddetermina kif il-kompjuter, u l-istess
l-utent, tinterpreta dak il-varjabbli.
Tipi numeriku tad-data bħal int, twil twil, float u
doppja, kollha għandhom karatteristiċi uniċi tagħhom stess u huma
użat biex jispeċifika valuri ta 'diversi firxiet u preċiżjoni.
Ikkastjar tat-tip jippermetti li jittieħdu numru b'punt li jvarja bħal
3.14 u jiksbu l-parti qabel l-deċimali, 3 f'dan il-każ,
billi ikkastjar li int.
Ejja jieħdu eżempju mill-lingwa Ingliża għal-qosor
reviżjoni ta 'tipi, u biex tara kif ikkastjar tat-tip tista' tibdel
il-mod aħna tinterpreta biċċa ta 'data.
Għal data, ejja jieħdu l-simboli hawn.
I biss jirreferu għal dawn il-linji b'attenzjoni konfigurati kif
simboli, iżda bħala xi ħadd li jaf il-lingwa Ingliża,
inti immedjatament jirrikonoxxu li huma, fil-fatt, l-ittri.
Inti impliċitament mifhum it-tip tad-data.
Ħarsa lejn din is-sekwenza ta 'ittri nistgħu naraw 2
kliem differenti, kull wieħed bil tifsira tagħha stess.
Hemm il-nom, riħ, bħal fil-daqqa riħ barra.
U hemm l-verb, riħ, bħal fil għandi bżonn biex
riħ għassa analogu tiegħi.
Dan huwa eżempju interessanti, għaliex nistgħu naraw
kif it-tip li aħna tassenja lill-dejta tagħna, kemm jekk nom jew
, tibdil verb kif nużaw dik id-data -
bħala l-riħ kelma jew mir-riħ.
Għalkemm kompjuter ma jimpurtahom grammatika u partijiet
tal-kelma Ingliża, il-prinċipju bażiku istess japplika.
Dan huwa, nistgħu nbiddlu l-interpretazzjoni ta 'l-eżatta
istess data maħżuna fil-memorja billi sempliċiment ikkastjar hija għal
differenti tip.
Hawn huma l-qisien tat-tipi l-aktar komuni fuq 32-bit
sistema operattiva.
Għandna char fl-1 byte, int u float fuq 4 bytes, fit
twila u double fuq 8 bytes.
Minħabba l int jieħu 4 bytes, se jieħdu 32 bits
meta hija maħżuna fil-memorja bħala serje binarju
ta 'żero u dawk.
Sakemm varjabbli tagħna jibqa bħala int tip, il-
kompjuter dejjem se jikkonvertu dawk dawk żerijiet minn
binarja fil-numru oriġinali.
Madankollu, nistgħu teoretikament mitfugħa dawk 32
bits fis-serje ta 'tipi Boolean.
U allura l-kompjuter ma tibqax tara numru, iżda
minflok ġabra ta 'żero u dawk.
Aħna tista 'wkoll tipprova biex jaqra dik id-data bħala numerika differenti
tip, jew anki bħala sensiela ta 'erba' karattri.
Meta jkun qed jittratta ma 'numri fil-ikkastjar, inti trid tikkunsidra kif
il-preċiżjoni tal-valur tiegħek ser jiġu affettwati.
Wieħed iżomm f'moħħu li l-preċiżjoni tista 'tissospendi l-istess,
jew inti tista 'titlef preċiżjoni, imma int qatt ma tista' tikseb preċiżjoni.
Ejja jgħaddu għall-modi 3 aktar komuni li inti tista '
jitilfu preċiżjoni.
Tidwib ta 'float lil int se jikkawżaw truncation ta' kollox
wara l-punt deċimali, hekk int xellug
bin-numru sħiħ.
Jekk nieħdu l-x float li se jkun daqs 3.7, nistgħu mitfugħa
dan x-varjabbli għal int minn sempliċiment bil-miktub int fl-
parentesi.
Kull meta nużaw dan it-terminu dritt hawn, aħna ser effettiv
tkun qed tuża l-valur 3 għaliex konna maqtugħ
kollox wara l-punt deċimali.
Nistgħu wkoll jikkonvertu twil twil għal int, li se
bl-istess mod iwasslu għal telf ta 'għoli ordni bits.
A twil twil jieħu 8 bytes, jew 64 bits fil-memorja.
Allura meta aħna mitfugħa għal int li għandha biss 4 bytes, jew 32
bits, aħna essenzjalment tqattiegħ off l-bits li
jirrappreżentaw il-valuri binarji ogħla.
Inti tista 'wkoll mitfugħa a doppja biex float, li se tagħti
inti l-float eqreb possibbli għall-doppju mingħajr
neċessarjament arrotondament dan.
Simili għall twila twila tagħna għall-konverżjoni int, it-telf fil-
preċiżjoni hija għaliex doppju fih aktar data.
A double se jippermetti li inti biex jaħżnu 53 bits sinifikanti,
madwar 16 numri sinifikanti.
Billi float biss se jippermetti li inti biex jaħżnu 24
bits sinifikanti, madwar 7 numri sinifikanti.
F'dawn l-aħħar żewġ każijiet, jista 'jkun utli li wieħed jaħseb ta'
tip ikkastjar bħala resizing ritratt.
Meta tmur minn daqs kbir għal daqs żgħir, inti ma tistax tara
affarijiet b'mod ċar għaliex inti mitlufa data
fil-forma ta 'pixels.
Ikkastjar tat-tip jista 'wkoll jikkawża problemi meta aħna
mitfugħa ints li flowts.
Peress sufruni fuq magna 32-bit biss 24
bits sinifikanti, dawn ma jistgħux jirrappreżentaw eżattament valuri
aktar minn 2 għall-qawwa ta '24, jew 16777217.
Issa ejja nitkellmu dwar ikkastjar espliċitu u impliċitu.
Ikkastjar espliċitu huwa meta aħna tikteb it-tip fil-parentesi
qabel l-isem varjabbli.
Bħala eżempju, qabel aħna kiteb int fil-parentesi qabel tagħna
float x varjabbli.
B'dan il-mod, irridu jiksbu l-valur int, il-
valur maqtugħ ta '3,7 -
3.
Ikkastjar impliċiti huwa meta l-kumpilatur tinbidel awtomatikament
tipi simili għal tip super, jew jagħmel xi tip ieħor ta '
ikkastjar mingħajr ma jeħtieġu l-utent biex jikteb
kwalunkwe Kodiċi addizzjonali.
Per eżempju, meta aħna żid 5 u 1.1, il-valuri tagħna diġà għandhom
tipi assoċjati magħhom.
Il-5 huwa int, filwaqt 1.1 huwa float.
Sabiex jiżdiedu, il-kompjuter casts 5 ġo float,
li kien ikun l-istess ħaġa bħat-kitba 5.0 fil-
1 post.
Iżda dan il-mod aħna ngħidu float 5, jew 5.0, flimkien ma 'dak li diġà kien
float, 1.1, u minn hemm nistgħu ngħidu żid dawn
valuri u jiksbu l-valur 6.1.
Ikkastjar impliċiti wkoll jippermetti li tassenja varjabbli ta '
tipi differenti ma 'xulxin.
Nistgħu dejjem tassenja tip inqas preċiż f'waħda iktar
preċiżi 1.
Per eżempju, jekk ikollna x doppja, u y int -
u dawn jista 'jkollhom xi valuri li aħna stabbiliti biex -
nistgħu ngħidu x ugwali y.
Minħabba li l-doppju jkollu preċiżjoni aktar minn int, hekk aħna
mhux se jitlef l-ebda informazzjoni.
Min-naħa l-oħra, ma jkunx neċessarjament korrett li jingħad
y ugwali x, minħabba li l-doppju jista 'jkollhom valur akbar minn
l-eqreb numru sħiħ.
U għalhekk l-eqreb numru sħiħ jista 'ma jkunx kapaċi li jżomm l-
informazzjoni maħżuna fl-għadd doppju.
Ikkastjar impliċiti hi wkoll użata fil operaturi paragun bħal
akbar minn, inqas minn, jew l-operatur ugwaljanza.
Dan il-mod nistgħu ngħidu jekk 5.1 huwa akbar minn 5, u irridu jiksbu l-
jirriżultaw minnu.
Minħabba 5 huwa int, iżda ser jiġu mitfugħa għal float sabiex
jiġi mqabbel mal-float 5.1, aħna'd ngħidu 5.1 huwa
akbar minn 5.0.
L-istess huwa veru mal tgħid jekk 2.0 ugwali ugwali 2.
Aħna tixtieq tirċievi wkoll veru, minħabba li l-kompjuter se jitfa 'l-
integer 2 li float u mbagħad jgħidu 2.0 ugwali ugwali 2.0,
dan huwa veru.
Tinsiex li aħna jista 'wkoll jixħet bejn ints u Chars,
jew il-valuri ASCII.
Chars bżonn ukoll li jiġi mnaqqas għal binarju, li hija għaliex inti
tista 'faċilment tikkonverti bejn Chars u rispettivi tagħhom
Valuri ASCII.
Biex jitgħallmu aktar dwar dan, check out video tagħna fuq ASCII.
Meta inti tieħu mument biex jaħsbu dwar kif id-data s maħżuna,
dan jibda jagħmel ħafna sens.
Huwa biss bħall-differenza bejn riħ u r-riħ.
Id-data hija l-istess, iżda t-tip jista 'jinbidel kif aħna
interpretata.
Jisimni Ġordan Jozwiak, dan cs50.