Die Typusanschlüsse ist ein Verfahren zur Transformation von Daten zwischen verschiedenen Datentypen. Diese Datenkonvertierungsmethode wird auch als Typumwandlung oder Typ -Zwang bezeichnet. Durch das Casting kann der Datentyp eher geändert als die Daten selbst. C ++ unterstützt die Typen für alle Datentypen. In diesem Artikel wird eine Type -Anbietungsmethode erörtert: die Konvertierung vom Int -Datentyp zum Doppel -Datentyp. Wir werden verschiedene Ansätze untersuchen, die einfach in INT in Doppeldatentyp konvertieren.
Zwei Kategorien der Konvertierung in C++
Implizite Typumwandlung
Die implizite Typumwandlung erfolgt spontan. In dieser Konvertierung hat der Benutzer keine Eingabe, und der Compiler führt die Konvertierung vollständig von selbst durch. Wenn in einem Ausdruck viele Arten von Daten vorhanden ist, wird häufig die Konvertierung durchgeführt. Es besteht jedoch das Risiko von Datenverlust, Signalverlust oder Datenüberlauf mit dieser Umwandlungsform.
Explizite Typumwandlung
Der explizite Typ wird vom Benutzer definiert und manchmal als "Typ-Casting" bezeichnet.Abhängig von den Anforderungen übersetzt oder konvertiert der Benutzer Daten eines Datentyps in einen anderen. Diese Arten von Conversions sind sicherer.
Beispiel 1
Das folgende Beispiel ist die Arbeit der implizite Typumwandlung, die int in Doppeldatentyp umwandelt. Das Programm beginnt mit den Header -Dateien. Wir haben zwei Header -Dateien im Header -Abschnitt. Dann gibt es die Hauptfunktion der Code -Implementierung. In der Hauptfunktion haben wir eine Variable als "intnumber" des Ganzzahl -Datentyps definiert und sie mit dem integralen Wert initialisiert.
Ebenso haben wir eine andere Variable als „DoubleLenumber“ des Datentyp -Doppels erstellt, aber nicht initialisiert. Jetzt müssen wir den Int -Datentyp -Wert in den doppelten Datentypwert konvertieren. Daher haben wir eine int -Variable "Intnumer" einer Doppel -Datentyp -Variable "DoubleNumber" zugewiesen. Dieser Ansatz ist die implizite Typumwandlung. Die Werte des Int -Datentyps und des Doppeldatentyps werden über den Befehl c ++ Cout gedruckt.
Bevor der Int -Wert der doppelten Variablen zugewiesen wird, verwandelt der Compiler ihn so automatisch doppelt so. Wie Sie im Bild sehen können, kann der INT keinen Dezimalwert enthalten, und die Ziffern nach dem Dezimalpunkt werden in diesem Beispiel abgeschnitten.
Beispiel 2
Wir haben die Umwandlung von INT in das vorhergehende Beispiel gesehen. Jetzt werden wir Double in INT umwandeln, was auch durch implizite Umwandlung durchgeführt wird.
Im ersten Schritt haben wir iSstream- und STD -Namespace -Dateien aufgenommen. Dann haben wir die Hauptfunktion des Programms aufgerufen, bei der wir eine Ganzzahl -Datentypvariable „intval“ deklarierten. Außerdem haben wir eine weitere Variable des Doppel -Datentyps als „Doubleval“ deklariert und ihn mit dem Doppelwert initialisiert, da er einen Dezimalteil enthält. Für die Konvertierung haben wir der INT -Variablen die doppelte Variable zugewiesen. Der implizite Typ Conversion -Wert wird auf dem Bildschirm der Konsole bei der Ausführung des Programms gedruckt.
Sie können den Doppelwert und die Konvertierung von Doppeldaten in den INT -Daten als Ausgabe sehen.
Beispiel 3
Wie wir aus dem vorherigen Beispiel sehen können. Dies tritt auf, wenn größere Daten in kleinere Daten in kleinere Daten umgewandelt werden. Um das Datenverlustproblem zu überwinden, haben wir explizite Typumwandlungen durchgeführt. Das explizite Typ-Casting erfolgt durch die C-Typ-Typ-Kaste. Wie der Name schon sagt, bevorzugt es eine C -Sprachform des Gießens. Gussnotation ist ein weiterer Begriff dafür.
Das Programm beginnt mit dem Header -Abschnitt, der die C ++ - Dateien enthält. Im nächsten Schritt wird die Hauptfunktion erstellt, in der die Variable als "intnumber" des Datentyps "int" definiert ist und den integralen Wert speichert. Eine andere Variable wird als "DoubleLeNumber" des Datentyps "Double" deklariert.
Anschließend haben wir die Casting-Methode im C-Stil verwendet, die die Typ-Doppelnotation mit der int-Variablen verwendet und der Doppelvariablen „DoubleLeNumber“ zuweist. Diese Werte werden mit dem Befehl c ++ cout gedruckt.
Der Dezimalteil wird abgeschnitten, da der Int -Datentyp keinen Datentyp hat.
Beispiel 4
Die Notationsfunktion kann auch Daten zwischen verschiedenen Datentypen verschieben. Das folgende Programm verwendet Funktionsstil -Casting, um Int in Doppeldatentypen umzuwandeln.
Wir haben die Hauptfunktion, bei der wir eine int -Datentypvariable als "Integer_x" erstellt haben und sie mit dem numerischen Wert "20" initialisiert haben. Die Variable mit Doppelart ist auch als "double_y" definiert. Anschließend haben wir Funktions Typen verwendet, um Int -Daten in Doppelart zu konvertieren. Wir haben die int -Variable "Integer_x" als Funktion bestanden und mit dem Datentyp "Double" definiert. Die Variable „Double Y“ wird anschließend der Funktion zugeordnet.
Das Ergebnis des Funktionsstilgastes, das am Int -Typ ausgeführt wird, um in das folgende Bild in Doppeldatentyp umzuwandeln:
Beispiel 5
Für die Typ-Konvertierung von Double to INT haben wir sowohl den Casting für C-Art-Typ-Art als auch den Funktionsstil implementiert. Dies zeigt die Ergebnisse der beiden Möglichkeiten der expliziten Typen.
Im Hauptfunktionsblock dieses Programms haben wir eine Doppel -Datentyp -Variable als "Doublex" und mit dem Dezimalwert initialisiert. Anschließend haben wir zwei weitere Variablen "Integer1" und "Integer2" erstellt und einen Datentyp int zugewiesen. Die int-Variable "Integer1" wird für die Konvertierung des C-Stils verwendet, und die int-Variable "InteGre2" wird für die Funktionsstilumwandlung verwendet. Die konvertierten Werte in Ganzzahlen aus Doppeldaten werden nach der Durchführung der Konvertierung gedruckt.
Da beide Möglichkeiten der explizite Konvertierung dasselbe tun, erzeugen sie die gleichen folgenden Ergebnisse:
Abschluss
Wir werden unsere Diskussion über die Typen für die Int in C abschließen++. Wir haben die implizite und explizit++. Konvertierungen oder Typen können jedoch nur sorgfältig und nur bei Bedarf verwendet werden, um Datenverluste und andere Probleme zu vermeiden.