unsigned int value = 1860;
int data = 1300;
if((data - value) > 0)
{
printf("Why it is printing this");
}
Ausgabe: Warum druckt diesesubtrahieren Signed ganze Zahl von Unsigned integer
ich verstehen mich nicht, warum Subtraktion signierter Form unsigned Durchgang durch das „wenn“, obwohl Wert der Variablen „Daten“ kleiner als Variable "Wert". Ich bin wirklich neugierig, wie die subtrahierte und nicht signierte Subtraktion "ein kleiner Fehler" ist, führt aber zu einem großen, weil ich die "Delay" -Funktion anstelle von "printf" benutzte und meine Aufgabe verzögert wurde, was Chaos verursachte.
unsigned int value = 1860;
int data = 1300;
if((data - value) > 0)
{
Delay(data - value);
}
Dieser Teil ist behalten verzögern und meine Aufgabe nie bedeutet ends.That Wert von „Daten - Wert“ ist negativ, das ist, warum es auf unendliche Warte geht. Gleichzeitig passiert es das "if" wobei die Bedingung "data-value"> 0 ist. Mein Zweifel, wenn signiert wird, wird in unsigned konvertiert und durchläuft "if", dann gibt es einen negativen Wert für die "Delay" -Funktion.
Der Wert von "Datenwert" ist nicht negativ, es ist genau das Gegenteil, d. H. Zu groß. Versuchen Sie Folgendes: 'printf ("% u ", Datenwert);' – skrtbhtngr