[Powered by Google Translate] JORDAN JOZWIAK: Típus öntés, a legegyszerűbb értelemben, a
módon megváltoztatni a számítógép értelmezése bizonyos adatok
implicit és explicit megváltoztatása adattípust.
Mint például a változó int egy float, vagy fordítva.
Ahhoz, hogy megértsük típusa casting, meg kell
kezdje az alapokat -
adattípusok magukat.
A számítógépes nyelvek, mint a C, az összes változó van valamilyen
Az adattípus, amely meghatározza, hogy a számítógép, és hasonlóképpen
a felhasználó, értelmezi, hogy a változó.
Numerikus adattípusok például int, hosszú, hosszú, úszó-és
kettős, minden megvan a saját egyedi jellemzőkkel és
leírására használt értékek különböző tartományok és a pontosság.
Type öntés lehetővé teszi számunkra, hogy egy lebegőpontos szám, mint a
3,14 és kap a rész előtt a decimális, 3 a jelen esetben,
öntéssel, hogy egy int.
Nézzünk egy példát az angol nyelvet egy rövid
felülvizsgálata típusok, és hogy hogyan típusú casting lehet változtatni
hogy hogyan értelmezzük a adat.
Az adatok, vessünk a szimbólumok itt.
Csak nézze meg ezeket a gondosan beállított vonalak
szimbólumokat, hanem valaki, aki ismeri az angol nyelvet,
azonnal felismerik, hogy ők valójában, leveleket.
Ön hallgatólagosan megértette a adattípust.
Nézi most ezt a húr a betűk akkor megjelenik két
más szavakkal, mindegyiknek megvan a maga jelentése.
Ott a főnév, a szél, mint a szél fúj odakint.
És ott van az ige, a szél, mint szeretnék
szél az analóg óra.
Ez egy érdekes példa, mert látjuk
miként az a típus, amit rendelni adatainkat, akár főnév vagy
ige változások hogyan használjuk fel az adatokat -
mint a szó szél vagy szél.
Bár a számítógép nem törődik nyelvtani és alkatrészek
az angol beszéd, ugyanazokkal az alapvető elv.
Ez azt jelenti, meg tudjuk változtatni a értelmezését a pontos
ugyanazok az adatok a memóriában tárolt egyszerűen öntés azt egy
különböző típusú.
Itt vannak a méret a leggyakoribb típus a 32-bites
operációs rendszer.
Van egy char az 1 byte, int és float, 4 bájt hosszú
hosszú és egy kettős, 8 bájt.
Mivel az int veszi fel 4 byte, akkor vegye fel 32 bit
történő tároláskor a memóriában bináris sorozat
nullákkal és egyesekkel.
Mindaddig, amíg a változó marad a típus int, a
számítógép mindig konvertálja azokat egyesek és nullák tól
bináris az eredeti számot.
Azonban elvileg leadott e 32
bitek egy sorozat Boole típusok.
És akkor a számítógép már nem látni egy szám, de
helyett gyűjteménye nullákkal és egyesekkel.
Mi is megpróbáljuk értelmezni az adatokat, mint egy másik numerikus
írja, vagy akár egy sor négy karakter.
Amikor foglalkozó számok öntés, meg kell vizsgálni, hogyan
pontossága az érték fogja érinteni.
Ne feledje, hogy a precíziós maradhat ugyanaz,
vagy akkor elveszíti pontosságot, de soha nem lehet szerezni pontossággal.
Menjünk át a három leggyakoribb módja, hogy akkor
veszít pontossággal.
Casting úszó egy int okoz csonkolása mindent
a tizedespont után, szóval marad
az egész szám.
Ha vesszük a float x, ami egyenlő 3,7, akkor öntött
ez a változó x egy int egyszerűen írásban int a
zárójelben.
Amikor használjuk ezt a kifejezést itt, akkor hatékonyan
használja az érték 3 mert már csonka
Mindent a tizedesvessző után.
Azt is átalakítani egy hosszú, hosszú egy int, amely
hasonlóan elvesztéséhez vezethet a magas rendű biteket.
A hosszú, hosszú veszi fel 8 bájt, illetve 64 bit a memóriában.
Így, amikor öntött, hogy egy int, melyek esetében csak a 4 byte, vagy 32
bit, mi lényegében darabolás le a bitek
képviseli a nagyobb bináris értékeket.
Te is leadott egy dupla olyan úszó, amely megadja
Önnek a lehető legszorosabb úszó a kettős nélkül
szükségképpen kerekítés.
Hasonló a hosszú hosszú int átalakítás, a veszteség
pontosság azért van, mert a kettős több adatot tartalmaz.
A kettős lehetővé teszi, hogy tárolja 53 jelentős bit,
mintegy 16 értékes számjegy.
Mivel a float csak lehetővé teszi, hogy tárolja 24
jelentős bit, nagyjából 7 számjeggyel.
Az utóbbi két esetben hasznos lehet gondolni
írja öntésre átméretezés egy fényképet.
Amikor elmész egy nagy méretű, hogy egy kis méretű, nem látsz
dolgok, mint tisztán, mert elveszett adatokat
formájában pixelek.
Típus konverziókat is okozhat gondot, amikor
leadott ints az úszók.
Mivel az úszók, a 32-bites gépet csak 24
jelentős bit, nem tudják pontosan értékeket képviselnek
több mint 2, hogy a hatalom a 24, vagy a 16777217.
Most beszéljünk explicit és implicit öntés.
Explicit casting, amikor írunk a típus zárójelben
előtt egy változó nevét.
Példaként, mielőtt írtuk int zárójelben előttünk
float változó x.
Ily módon megkapjuk a int érték,
csonkított érték 3,7 -
3.
Implicit casting, amikor a fordító automatikusan átvált
hasonló típusú egy szuper típusú, vagy végez valamilyen más fajta
casting anélkül, hogy a felhasználó számára, hogy írjon
további kódot.
Így például, amikor adjunk hozzá 5 és 1,1, értékeink már
típusok velük kapcsolatban.
Az 5 egy int, míg a 1.1 egy úszó.
Annak érdekében, hogy vegye fel őket, a számítógép vet 5 egy float,
ami lett volna ugyanaz, mint írásban 5,0 a
első helyen.
De ez így mondjuk float 5, vagy 5,0, plusz mi már
Egy úszó, 1,1, és onnan tudjuk ténylegesen hozzá e
értékek és kap az érték 6,1.
Implicit casting is lehetővé teszi számunkra, hogy rendelni változókkal
különböző típusok egymással.
Mi mindig rendelni egy kevésbé pontos típusát figyelembe egy
1 pontos.
Például, ha van egy dupla x, és egy int y -
és ezek lehetnek olyan értékek, mi meg őket -
azt mondhatjuk, x egyenlő y.
Mivel a kettős több pontosságot, mint egy int, így
nem veszíti el semmilyen információt.
Másrészt, akkor nem feltétlenül helyes azt mondani,
y értéke x, mert a kettős lehet, hogy egy nagyobb érték, mint a
az egész.
És így az egész nem lesz képes tartani az összes
tárolt információk a kettős.
Implicit öntés is használják összehasonlító operátorok, mint a
nagyobb, kisebb, illetve az egyenlőség operátort.
Így azt mondhatjuk, hogy 5,1 nagyobb, mint 5, és megkapjuk a
eredménylistához igaz.
Mivel 5 egy int, de ez lesz a leadott úszó annak érdekében, hogy
össze kell hasonlítani a float 5,1, azt mondanám, hogy 5.1-
nagyobb, mint 5,0.
Ugyanez igaz a mondás, ha 2,0 egyenlő értéke 2.
Mi lenne is kap igaz, mert a számítógép leadott
értéke 2 és lebegni, majd mondja 2,0 egyenlő értéke 2,0,
ez igaz.
Ne felejtsük el, hogy mi is öntött között ints és a karakter,
vagy ASCII értékeket.
Karakterek is csökkenteni kell a bináris, ezért van
könnyen konvertálni között karakterek és a megfelelő
ASCII értékeket.
Ha többet szeretne megtudni erről, nézd meg a videót az ASCII.
Ha egy pillanatra gondolkodni, hogyan tárolja az adatokat,
kezdődik, hogy sok értelme.
Ez olyan, mint a különbség a szél és a szél.
Az adat ugyanaz, de a típus lehet változtatni, hogy hogyan
értelmezni.
A nevem Jordan Jozwiak, ez CS50.