[Powered by Google Translate] JORDAN Jóźwiak: Tyyppi valu, yksinkertaisimmassa mielessä, on
tapa muuttaa tietokoneen tulkinta joidenkin tietojen
implisiittisesti tai eksplisiittisesti muuttamatta sen tietotyyppi.
Kuten muuttamalla int koho, tai päinvastoin.
Ymmärtää tyyppi valu, meidän
aloitettava perusasioista -
tietotyyppejä itse.
Tietokoneen kieliä kuten C, kaikki muuttujat on jonkinlainen
tietotyyppi, joka määrittää, miten tietokone ja samoin
käyttäjä, tulkitsee, että muuttuja.
Numeeriset tietotyypit kuten int, long long, float ja
kaksinkertainen, kaikilla on omat ainutlaatuiset ominaisuudet ja ovat
käytetään määrittää arvot vaihtelevat valikoimia ja tarkkuutta.
Tyyppi valu antaa meille mahdollisuuden ottaa liukuluku kuten
3,14 ja saada osa ennen desimaalipilkun, 3 tässä tapauksessa,
valamalla se int.
Otetaanpa esimerkki Englanti kielen lyhyt
lue tyyppejä, ja nähdä miten tyypin valu voi muuttua
tapamme tulkita osa tiedoista.
Datan, otetaan symbolit täällä.
Minä vain viitata näihin huolellisesti määritetty rivejä
symboleja, mutta joku joka tietää Englanti kieli,
te heti, että ne ovat itse asiassa kirjeitä.
Voit epäsuorasti ymmärtää tietotyyppi.
Tarkasteltaessa tämä merkkijono kirjaimia voimme nähdä kaksi
eri sanoja, joilla kullakin on oma merkityksensä.
On substantiivi, tuuli, kuten tuuli puhaltaa ulkona.
Ja siellä verbi, tuuli, kuten minun täytyy
tuuli minun analoginen kello.
Tämä on mielenkiintoinen esimerkki, koska voimme nähdä
miten tyyppi että antaa meidän tietoja, myös substantiivi tai
verbi, muutokset miten käyttää tietoja -
koska sana tuuli tai tuuli.
Vaikka tietokone ei välitä kielioppi ja osat
ja Englanti puhe, sama perusperiaate pätee.
Eli voimme muuttaa tulkintaa tarkka
Sama muistiin tallennetut tiedot yksinkertaisesti valamalla se
eri tyyppiä.
Tässä ovat kokoa yleisimpiä on 32-bittinen
käyttöjärjestelmän.
Meillä on char on 1 tavu, int ja float 4 tavua, pitkä
pitkä ja kaksinkertainen 8 tavua.
Koska int vie 4 tavua, se kestää jopa 32 bittiä
kun se tallennetaan muistiin binäärisen sarja
nollia ja ykkösiä.
Niin kauan kuin muuttuja pysyy tyyppiä int,
tietokone aina muuntaa nuo ja nollat
binary osaksi alkuperäistä numero.
Voisimme kuitenkin teoriassa heittää nuo 32
bitit useisiin Boolen tyyppejä.
Ja sitten tietokone ei enää nähdä useita, mutta
sijaan joukko nollia ja ykkösiä.
Voisimme myös yrittää lukea, että tiedot eri numeerinen
kirjoittaa, tai jopa merkkijono neljä merkkiä.
Käsitellessään numerot valu, sinun täytyy miettiä, miten
tarkkuus arvosi vaikuttaa.
Muista, että tarkkuus voi pysyä samana,
tai voit menettää tarkkuutta, mutta et voi koskaan saada tarkkuutta.
Mennään läpi varten kolme yleisintä tapaa, että voit
menettää tarkkuutta.
Casting float int aiheuttaa katkaisu kaikesta
desimaalipilkun jälkeen, joten olet jäänyt
kanssa kokonaislukuun.
Jos otamme float x, joka on sama kuin 3.7, voimme heittää
Tämän muuttujan x int yksinkertaisesti kirjoittamalla int vuonna
Suluissa.
Aina käytämme tätä termiä täällä, käymme tehokkaasti
käyttää arvoa kolme, koska olemme katkaistu
kaiken desimaalipilkun jälkeen.
Voimme myös muuntaa pitkä pitkä int, joka
samoin johtaa menetykseen bittiin.
Pitkä pitkä vie 8 tavua tai 64 bittiä muistiin.
Joten, kun me heitimme sen int joka on vain 4 tavua tai 32
bittiä, olemme lähinnä pilkkominen pois kaikki bitit, jotka
edustavat korkeamman binääriarvoja.
Voisit myös heittää double float, joka antaa
olet mahdollisimman lähellä float double ilman
välttämättä pyöristystä sitä.
Samanlaisia ​​pitkän pitkä int muuntaminen, menetys
tarkkuus on sillä kaksinkertainen sisältää enemmän dataa.
Kaksinkertainen avulla voit tallentaa 53 merkitsevää bittiä,
noin 16 merkitsevää numeroa.
Katsoo float vain voit tallentaa 24
merkitsevää bittiä, noin seitsemän merkitsevää numeroa.
Näissä kaksi viimeistä tapauksissa voi olla hyödyllistä ajatella
kirjoita valu kokoa kuva.
Kun menet suuren koon pieni koko, et näe
asiat niin selkeästi, koska olet menettänyt tietoja
muodossa pikseliä.
Tyyppi valu voi myös aiheuttaa ongelmia, kun
heittää ints ja kelluu.
Koska kelluu 32-bittinen kone on vain 24
merkitsevää bittiä, he eivät voi tarkasti edustavat arvoja
yli 2 valtaa 24, tai 16777217.
Nyt puhutaan eksplisiittisiä ja implisiittisiä valu.
Explicit valu on kun kirjoitan suluissa
ennen muuttujan nimeä.
Esimerkiksi ennen kuin kirjoitti int sulkeisiin ennen meidän
float muuttuja x.
Tällä tavalla, saadaan int arvo,
katkaistun arvo 3,7 -
3.
Implisiittiset valu on kun kääntäjä vaihtaa automaattisesti
samanlainen tyypit super tyyppiä, tai suorittaa muu sellainen
valu ilman käyttäjän kirjoittaa
mitään lisäkoodi.
Esimerkiksi kun lisäämme 5 ja 1,1, arvomme jo
tyypit niihin liittyviä.
5 on int, kun taas 1.1 on float.
Jotta lisätä ne, tietokone heittää 5 tulee float,
mikä olisi ollut sama asia kuin kirjallisesti 5,0 vuonna
ensiksi.
Mutta näin sanomme float 5 tai 5,0, ja mikä oli jo
float, 1,1, ja sieltä voimme itse lisätä näitä
arvot ja saada arvon 6,1.
Implisiittiset valu voimme myös määrittää muuttujia
erilaisia ​​toisiinsa.
Voimme aina antaa epätarkempi kirjoitat enemmän
tarkka yksi.
Esimerkiksi jos meillä on kaksinkertainen x, ja int y -
ja ne voivat olla mitä tahansa arvoja, jotka asetimme heidät -
Voimme sanoa x on y.
Koska kaksinkertaisen on enemmän tarkkuutta kuin int, joten
ei menetä mitään tietoja.
Toisaalta, se ei välttämättä ole oikein sanoa
Y vastaa x, koska kaksinkertainen saattaa olla suurempi arvo kuin
kokonaisluku.
Ja niin kokonaisluku ei ehkä pysty pitämään kaikkia
tallennettujen tietojen kaksinkertainen.
Implisiittinen valu käytetään myös vertailussa toimijoiden kuten
suurempi, pienempi kuin tai tasa-operaattori.
Näin voimme sanoa, jos 5,1 on suurempi kuin 5, ja saamme
seurauksena totta.
Koska 5 on int, mutta se tulee olemaan valetaan float jotta
voidaan verrata float 5,1 me sanoisi 5.1 on
on suurempi kuin 5,0.
Sama pätee sanonta jos 2,0 vastaa yhtä 2.
Olimme myös saada totta, koska tietokone heittää
kokonaisluku 2 kellua ja sanoa sitten 2,0 vastaa yhtä 2,0-
Tämä on totta.
Älä unohda, että voimme myös heittää välillä ints ja merkkiä,
tai ASCII arvoja.
Merkkiä on myös vähennettävä binary, joten voit
voi helposti muuntaa välillä merkkiä ja niiden
ASCII-arvoina.
Saat lisätietoja tästä, tutustu video ASCII.
Kun otat hetkeksi miettimään, miten tietoja on tallennettu,
se alkaa tehdä paljon järkeä.
Se on aivan kuin ero tuuli ja tuulen.
Data on sama, mutta tyypin voi muuttaa miten
tulkita sitä.
Nimeni on Jordan Jóźwiak, tämä cs50.