[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.