Methode zur Datentypkonvertierung in C-Sprache
Bei der Datentypkonvertierung werden Daten (Variablen, Werte, Ausdrucksergebnisse) konvertiert usw.) von einem Typ zum anderen.
Automatische Typkonvertierung
Automatische Typkonvertierung ist eine vom Compiler stillschweigend, implizit und heimlich durchgeführte Konvertierung geschehen automatisch.
1) Eine automatische Typkonvertierung erfolgt, wenn ein Datentyp einem anderen Variablentyp zugewiesen wird. Beispiel:
float f = 100;
100 sind Daten vom Typ int und müssen in den Typ „Nur Float“ konvertiert werden kann der Variablen f zugewiesen werden. Ein weiteres Beispiel:
int n = f;
f sind Daten vom Typ Float und müssen in den Typ int konvertiert werden, bevor sie der Variablen n zugewiesen werden können.
Wenn bei der Zuweisungsoperation die Datentypen auf beiden Seiten der Zuweisungsnummer unterschiedlich sind, muss der Typ des Ausdrucks auf der rechten Seite in den Typ der Variablen auf der linken Seite konvertiert werden, was dazu führen kann Datenverfälschung oder verringerte Genauigkeit; daher ist die automatische Eingabekonvertierung nicht unbedingt sicher. Compiler geben im Allgemeinen Warnungen vor unsicheren Typkonvertierungen aus.
2) Bei gemischten Operationen verschiedener Typen konvertiert der Compiler auch automatisch Datentypen, indem er alle an der Operation beteiligten Daten zuerst in denselben Typ konvertiert und dann Berechnungen durchführt. Die Konvertierungsregeln lauten wie folgt:
Die Konvertierung erfolgt in Richtung zunehmender Datenlänge, um sicherzustellen, dass der Wert nicht verzerrt oder die Genauigkeit nicht verringert wird. Wenn beispielsweise int und long an Operationen beteiligt sind, werden die Daten vom Typ int zunächst in den Typ long konvertiert und dann die Operation ausgeführt.
Alle Gleitkommaoperationen werden mit doppelter Genauigkeit ausgeführt. Auch wenn die Operation nur den Typ float enthält, muss sie in den Typ double konvertiert werden, bevor die Operation ausgeführt werden kann.
Wenn char und short an Operationen teilnehmen, müssen sie zuerst in den Typ int konvertiert werden.
Die folgende Abbildung beschreibt diese Konvertierungsregel anschaulicher:
unsigned ist auch unsigned int. Zu diesem Zeitpunkt können Sie int weglassen und einfach unsigned schreiben.
Beispiel für automatische Typkonvertierung:
#include<stdio.h> int main(){ float PI = 3.14159; int s1, r = 5; double s2; s1 = r * r * PI; s2 = r * r * PI; printf("s1=%d, s2=%f\n", s1, s2); return 0; }
Laufendes Ergebnis:
s1=78, s2=78.539749
Bei der Berechnung des Ausdrucks r*r*PI werden sowohl r als auch PI in den Doppeltyp, Ausdruck The, konvertiert Das Ergebnis der Formel ist ebenfalls vom Typ double. Da s1 jedoch eine Ganzzahl ist, ist das Ergebnis der Zuweisungsoperation immer noch eine Ganzzahl und der Dezimalteil wird verworfen, was zu einer Datenverzerrung führt.
Weitere Inhalte zum Thema Programmierung finden Sie in der Spalte Einführung in die Programmierung auf der chinesischen PHP-Website!
Das obige ist der detaillierte Inhalt vonKonvertierungsmethode für C-Sprachdatentypen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!