[Powered by Google Translate] JORDAN JOZWIAK: Type steypu, í einföldustu merkingu, er leið til að breyta túlkun a tölva 'af einhverjum gögnum með beint eða óbeint að breyta gögn tegund þess. Svo sem eins og að breyta við int að fljóta, eða öfugt. Til að skilja tegund steypu þurfum við að byrja með grunnatriði - gagnatög sjálfir. Í tungumálum tölva eins og C, allir breytur einhverskonar gögn gerð sem ákvarðar hvernig tölva, og sömuleiðis notandi, túlkar þá breytu. Töluleg gögn tegundir eins og int, langur langur, fljóta og tvöfaldur, allir hafa sinn einstaka þeirra eiginleika og eru notað til að skilgreina gildi mismunandi svið og nákvæmni. Type steypu gerir okkur kleift að taka fleytitölu númer eins og 3.14 og fá hluti fyrir tugabrot, 3 í þessu tilfelli, af steypu það heiltala. Við skulum taka dæmi af ensku fyrir stutt endurskoða gerðir, og til að sjá hvernig gerð steypu getur breyst hvernig við túlka a stykki af gögn. Fyrir gögn, við skulum taka tákn hér. Ég vísa bara til þessa vel uppsettu línur sem tákn, en eins og einhver sem þekkir ensku, þú kannast strax að þeir eru í raun, bréf. Þú skilja óbeint gögn tegund. Skoða þetta band af bréfum sem við getum séð tvær mismunandi orð, hvert með eigin skilningi hennar. Það er nafnorð, vindur, eins og í vindi höggum utan. Og það er sögnin, vindur, eins og ég þarf að vindur hliðstæða úrið mitt. Þetta er áhugavert dæmi, vegna þess að við getum séð hvernig gerð sem við gefum okkar gögn, hvort sem nafnorð eða sögn, breytingar hvernig við notum þessi gögn - sem orðið vindi eða vindur. Þó að tölva er ekki sama um málfræði og hlutar á ensku ræðu, sömu undirstöðu lögmál gildir. Það er, getum við breytt túlkun nákvæmlega sömu gögn sem eru geymd í minni með steypu einfaldlega það til a mismunandi gerð. Hér eru stærðir af algengustu tegundum á a 32-bita stýrikerfi. Við höfum bleikju á 1 bæti, int og fljóta á 4 bytes, A Long langur og tvöfalda á 8 bæti. Vegna int tekur upp 4 bæti, mun það taka upp 32 bita þegar það er geymt í minni sem tvöfaldur röð af núllum og sjálfur. Svo lengi sem breytu okkar enn sem gerð INT, sem tölva mun alltaf breyta þeim sjálfur og núll frá tvöfaldur í upprunalegu númer. Hins vegar gætum við fræðilega kastað þeim 32 bitar í röð Boolean gerðum. Og þá tölvan mun aldrei framar sjá númer, en stað safn af núllum og sjálfur. Við gætum líka reynt að lesa þessi gögn sem annar tölustafir tegund, eða jafnvel eins og a band af fjórum stöfum. Þegar fjallað með númerum í steypu, verður þú að íhuga hvernig nákvæmni gildi munu verða fyrir áhrifum. Hafðu í huga að nákvæmni geta vera sú sama, eða þú getur missa nákvæmni, en þú getur aldrei fá nákvæmni. Við skulum fara í gegnum fyrir þremur algengustu leiðir sem hægt missa nákvæmni. Kasta fljóta að heiltala mun valda truncation af öllu eftir kommu, svo þú ert vinstri með heilu tölu. Ef við tökum fljóta x sem jafnan 3,7, getum við rekið breytu x til INT því að skrifa einfaldlega int í sviga. Alltaf þegar við notum þetta orð hérna, munum við í raun vera með gildi þremur vegna þess að við höfum stytt allt eftir kommu. Við getum einnig umbreyta fyrir lengi að heiltala, sem mun álíka leiða til tap af hár-röð bita. A langur langur tekur upp 8 bæti eða 64 bita í minni. Svo þegar við kastaði hann til INT sem aðeins hefur 4 bæti, eða 32 bits, við erum í raun chopping burt alla bita að tákna hærri tvöfaldur gildi. Þú getur einnig kastað tvöfalt að fljóta, sem gefa þú næst hægt fljóta í tveggja manna herbergi án endilega dregið það. Líkur til lengi lengi okkar til int viðskipti, tap á nákvæmni er vegna þess að tvöfalda inniheldur fleiri gögn. A tvöfaldur mun leyfa þér að geyma 53 verulega bita, u.þ.b. 16 veruleg tölustafir. Þar sem fljóta mun aðeins leyfa þér að geyma 24 verulegar bits, u.þ.b. sjö verulegar tölustafir. Í þessum tveimur síðustu tilvikum getur verið gagnlegt að hugsa um gerð steypu sem resizing myndir. Þegar þú ferð af stórum stærð í litlu stærð, getur þú ekki séð hlutina eins greinilega vegna þess að þú tapað gögnum í formi punkta. Type steypu getur einnig valdið vandræðum þegar við kastað ints að fljóta. Þar flýtur um á 32-bita vél hefur aðeins 24 veruleg bits, geta þeir ekki nákvæmlega tákna gildi rúmlega 2 á vald 24, eða 16777217. Nú skulum tala um skýr og óbeina steypu. Skýr steypu er þegar við skrifa tegund í sviga fyrir breytu nafn. Sem dæmi má nefna að áður en við skrifuðum int í sviga fyrir okkar fljóta breytu x. Á þennan hátt, fá við int gildi, styttu verðmæti 3,7 - 3. Óbeina steypu er þegar þýðandinn sjálfkrafa svipaðar tegundir til frábær tegund, eða framkvæma einhver önnur tegund af steypu án þess að krefjast þess að notandi til að skrifa allir viðbótar kóða. Til dæmis, þegar við bætum 5 og 1,1, hafa gildi okkar þegar gerðir í tengslum við þá. The 5 er int, en 1,1 er fljóta. Til að bæta þeim, tölvan kastar 5 í flot, sem hefði verið það sama og að skrifa 5,0 í fyrsta sæti. En þessi leið við að segja fljóta 5, eða 5,0, plús hvað var þegar a fljóta, 1,1, og þaðan getum við í raun að bæta þessum gildi og fá verðmæti 6,1. Óbeina steypu einnig leyfa okkur að úthluta breytum á mismunandi gerðir við hvert annað. Við getum alltaf úthluta minna nákvæmari gerð í meira nákvæmlega einn. Til dæmis, ef við höfum tvöfalt x, og int y - og þetta gæti hafa allir gildi sem við setjum þá til - við getum sagt x er jafnt y. Vegna þess að tvöfaldur hefur meiri nákvæmni en heiltala, þannig að við ekki missa neinar upplýsingar. Á hinn bóginn, það vildi ekki endilega að vera rétt að segja Y jafngildir x, því tvöfaldur gæti hafa stærri gildi en í heiltölu. Og svo heiltölu might ekki vera fær um að halda öllum upplýsingar sem geymdar eru í tvöfalt. Óbeina steypu er einnig notað í samanburði rekstraraðila eins meira en, minna en, eða jöfn rekstraraðila. Þannig að við getum sagt ef 5,1 er meira en 5, og við fá leiða satt. Vegna 5 er int, en það mun verða varpað til flot í því skyni að verið miðað við fljóta 5.1, viljum við segja að 5,1 sé meiri en 5,0. Sama gildir með að segja hvort 2,0 jafngildir jafngildir 2. Við viljum einnig fá satt, vegna þess að tölvan mun kastaði heiltala 2 að fljóta og þá segja 2,0 jafngildir jafngildir 2,0, þetta er satt. Ekki gleyma því að við getum líka kastað á milli ints og chars, eða ASCII gildi. Chars þarf einnig að minnka tvöfaldur, sem er hvers vegna þú geta auðveldlega umbreyta á milli chars og viðkomandi þeirra ASCII gildi. Til að læra meira um þetta, skrá sig út vídeó okkar á ASCII. Þegar þú taka a augnablik til að hugsa um hvernig gögn er geymd, það byrjar að gera mikið af skilningi. Það er bara eins og munurinn á milli vindi og vindur. Gögnin eru þau sömu, en tegund getur breytt því hvernig við túlka það. Ég heiti Jordan Jozwiak þetta cs50.