[Powered by Google Translate] JORDAN Jozwiak: Type Casting, im einfachsten Sinne ist ein Weg zu einem Computer-Interpretation einiger Daten verändern implizit oder explizit Änderung seiner Datentyp. Wie das Ändern einer int zu einem float, oder umgekehrt. Um Typumwandlung zu verstehen, müssen wir Beginnen wir mit den Grundlagen - Datentypen sich. In Programmiersprachen wie C, müssen alle Variablen eine Art der Daten-Typ, wie der Computer, und ebenfalls ermittelt der Benutzer, interpretiert diese Variable. Numerische Datentypen wie int, long long, float und Doppel, haben alle ihre eigenen einzigartigen Eigenschaften und sind verwendet, um Werte unterschiedlicher Bereiche und Genauigkeit festzulegen. Typ-Umwandlung ermöglicht es uns, eine Gleitkommazahl nehmen wie 3,14 und erhalten den Teil vor dem Komma, 3 in diesem Fall durch Gießen es zu einem int. Nehmen wir ein Beispiel aus der englischen Sprache für einen kurzen Bewertung von Typen, und um zu sehen, wie Typumwandlung können die Art und Weise interpretieren wir ein Stück von Daten. Für Daten, lassen Sie die Symbole hier. Ich habe gerade diesen sorgfältig konfiguriert Linien wie beziehen Symbole, sondern als jemand, der die englische Sprache kennt, erkennt man sofort, dass sie in der Tat, Briefe. Sie implizit verstanden den Datentyp. Mit Blick auf diese Zeichenfolge aus Buchstaben können wir sehen, zwei anderen Worten, jede mit ihrer eigenen Bedeutung. Es ist das Substantiv, Wind, wie in den Wind draußen. Und es gibt das Verb, Wind, wie in I zu müssen wickeln meiner analogen Uhr. Dies ist ein interessantes Beispiel, weil wir sehen können wie die Art, dass wir unsere Daten zuordnen, ob Substantiv oder Verb, Veränderungen, wie wir diese Daten verwenden - wie das Wort Wind oder Wind. Obwohl ein Computer nicht über Grammatik und Teile kümmern der englischen Sprache, gilt das gleiche Prinzip. Das heißt, können wir die Interpretation der genaue gleichen Daten im Speicher abgelegt einfach Gießen, dass es ein anderen Typs. Hier sind die Größen der häufigsten Arten auf einem 32-Bit- Betriebssystem. Wir haben eine char bei 1 byte, int und float bei 4 Bytes, eine lange lang und ein Doppel mit 8 Byte. Da ein int belegt 4 Byte, wird es dauern, bis 32 Bit wenn im Speicher als eine binäre Reihe gespeicherten von Nullen und Einsen. Solange unsere variable bleibt als Typ int, der Computer werden immer wandeln diese Einsen und Nullen aus binär in der ursprünglichen Anzahl. Allerdings könnten wir theoretisch gegossen jene 32 Bits in eine Reihe von Booleschen Typen. Und dann würde der Computer nicht mehr sehen eine Reihe, aber stattdessen eine Reihe von Nullen und Einsen. Wir könnten auch versuchen, diese Daten als eine andere numerische lesen geben, oder sogar als eine Folge von vier Zeichen. Beim Umgang mit Zahlen in Gießen, müssen Sie überlegen, wie die Genauigkeit Ihrer Wert wird betroffen sein. Beachten Sie, dass die Präzision kann die gleiche bleiben, oder Sie können zu verlieren Präzision, aber man kann nie gewinnen Präzision. Lassen Sie durchlaufen für die drei häufigsten Arten, dass man Verlust der Genauigkeit. Casting a float in int verursachen Abschneiden alles nach dem Komma, so dass Sie nach links mit der Ganzzahl. Wenn wir die float x, 3,7 gleich stattfinden wird, können wir gegossen Diese Variable x zu einem int durch einfaches Schreiben int in Klammern. Immer, wenn wir diesen Begriff mit der rechten hier, wir effektiv werden mit dem Wert drei, weil wir abgeschnitten haben alles nach dem Komma. Wir können auch eine lange, lange auf einen int, was wird ähnlich zu einem Verlust von Bits hoher Ordnung führen. Eine lange lange dauert bis 8 Byte bzw. 64 Bit im Speicher. Wenn wir also warf sie in einen int, der nur 4 Bytes oder 32 Bits, sind wir im Wesentlichen Abhacken alle Bits, stellen die höheren binären Werten. Sie könnten auch warf einen Doppel mit einem Schwimmer, die geben Ihnen die größtmögliche float der doppelten ohne zwangsläufig Rundung. Ähnlich wie unsere long long nach int Umwandlung der Verlust in Präzision ist da eine doppelte enthält mehr Daten. Ein Doppelklick können Sie 53 Bits zu speichern, rund 16 signifikanten Ziffern. Während ein Schwimmer können Sie nur bis 24 zu speichern Bits, etwa sieben signifikanten Stellen. In den letzten beiden Fällen kann es hilfreich sein, zu denken Typumwandlung wie Größenänderung ein Foto. Wenn Sie von einer großen Größe gehen auf eine kleine Größe, können Sie nicht sehen Dinge so klar, weil man verlorene Daten in Form von Pixeln. Typ-Umwandlung kann auch Probleme verursachen, wenn wir gegossen ints zu Schwimmern. Da schwimmt auf einer 32-Bit-Rechner haben nur 24 Bits, können sie nicht genau darzustellen Werte über 2 zur Leistung von 24 oder 16777217. Lassen Sie uns nun über explizite und implizite Casting sprechen. Explizite Umwandlung ist, wenn wir die Art in Klammern schreiben vor einem Variablennamen. Als ein Beispiel, bevor wir schrieben int in Klammern vor unseren float Variable x. Auf diese Weise erhalten wir die int-Wert, desto abgeschnittenen Wert von 3,7 - 3. Implizites Casting ist, wenn der Compiler automatisch ähnliche Arten zu einem super Typ, oder führt eine andere Art von Gießen ohne dass der Benutzer zu schreiben keine zusätzlichen Code. Zum Beispiel, wenn wir 5 und 1,1 hinzuzufügen, unsere Werte haben bereits Typen mit ihnen verbunden sind. Die 5 ist ein int, während 1,1 ist ein Schwimmer. Um sie hinzuzufügen, wirft der Computer 5 in einen Schwimmer, welche wäre das gleiche wie das Schreiben 5,0 in der haben ersten Platz. Aber diese Art, wie wir sagen, Schwimmer 5 oder 5,0, plus, was bereits ein Schwimmer, 1,1, und von dort können wir tatsächlich fügen Sie diese Werte und erhalten den Wert 6,1. Implizites Casting erlaubt uns auch, Variablen zuweisen verschiedene Arten zueinander. Wir können immer weisen eine weniger genaue Art in eine präzise ein. Zum Beispiel, wenn wir einen double x, und ein int y - und diese könnten keine Werte, die wir setzen sie um - können wir sagen, x gleich y. Da das Doppel mehr Präzision als ein int hat, so dass wir verlieren keine Informationen. Andererseits wäre es nicht unbedingt korrekt zu sagen y gleich x, weil die doppelte einen größeren Wert als haben könnte die Ganzzahl. Und so ist die Zahl möglicherweise nicht in der Lage, alle halten Informationen in dem doppelten gespeichert. Implizites Casting ist auch im Vergleich Operatoren wie verwendet größer als, kleiner als oder des Gleichheits-Operators. So können wir, wenn 5,1 sagen kann, ist größer als 5, und wir bekommen die Ergebnis true. Da 5 ist ein int, aber es wird mit einem Schwimmer gegossen werden, um mit dem Schwimmer 5,1 verglichen werden, würden wir sagen, 5,1 ist größer als 5,0. Das gleiche gilt zu sagen, wenn 2,0 entspricht gleich 2 wahr. Wir würden auch zu wahr, weil der Computer warf der Zahl 2 zu schweben und dann sagen 2,0 entspricht gleich 2,0, dies wahr ist. Vergessen Sie nicht, dass wir auch zwischen ints und chars gegossen, oder ASCII-Werte. Chars müssen auch auf binäre reduziert werden, weshalb Sie können leicht zwischen Zeichen und ihrer jeweiligen konvertieren ASCII-Werte. Um mehr zu erfahren über diese Besuche unsere Video-on-ASCII. Wenn Sie einen Moment Zeit nehmen, um darüber, wie Daten gespeichert ist denken, es fängt an, sehr viel Sinn machen. Es ist wie der Unterschied zwischen Wind und Wind. Die Daten sind die gleichen, aber die Art ändern kann, wie wir interpretieren. Mein Name ist Jordan Jozwiak diese CS50.