Heim >Backend-Entwicklung >C++ >Warum gibt das Subtrahieren von „0' von einem Zeichen in C seinen numerischen Wert zurück?

Warum gibt das Subtrahieren von „0' von einem Zeichen in C seinen numerischen Wert zurück?

Linda Hamilton
Linda HamiltonOriginal
2024-12-14 12:32:11653Durchsuche

Why Does Subtracting '0' from a Char in C Return Its Numerical Value?

Das Subtrahieren von „0“ von einem Zeichen in C gibt dessen numerischen Wert zurück

Sie werden vielleicht überrascht sein, dass das Subtrahieren von „0“ von einem Der ASCII-Zeichencode ergibt den numerischen Wert, der durch dieses Zeichen dargestellt wird.

ASCII verstehen Kodierungen

Um zu verstehen, warum das funktioniert, ist es wichtig, etwas über ASCII-Kodierungen zu wissen. ASCII weist jedem Zeichen einen eindeutigen numerischen Wert im Bereich von 0 bis 127 zu. Der einem Zeichen entsprechende numerische Wert wird als sein ASCII-Code bezeichnet.

Zum Beispiel hat das Zeichen „0“ den ASCII-Code 48, „1“ hat den ASCII-Code 49 usw. Das bedeutet, dass die Zeichen „0“ bis „9“ ASCII-Codes im Bereich von 48 bis 57 haben.

Numerische Darstellung von Zeichen

Der Grund für das Subtrahieren von „0“ aus einem Zeichencode den numerischen Wert zurückgibt, liegt daran, dass die ASCII-Codes für die Ziffern „0“ bis „9“ sequentiell sind. Durch das Subtrahieren von „0“ von einem dieser Codes wird der Versatz der Ziffern aus der Folge entfernt, sodass nur der tatsächliche numerische Wert übrig bleibt.

Zum Beispiel ergibt das Subtrahieren von „0“ von „9“ (ASCII-Code 57) 9, seit 57 - 48 = 9.

Beispiel

Betrachten Sie den folgenden Code:

char c = '9';
int x = (int)(c - '0');

Hier haben wir ein Zeichen „9“ in der Variablen c gespeichert. Die Umwandlung der Differenz zwischen c und „0“ in eine ganze Zahl mit (int) weist der Variablen x den numerischen Wert „9“, also 9, zu.

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass das Subtrahieren von „0“ vom ASCII-Code eines Zeichens in C den numerischen Wert ergibt, den das Zeichen darstellt, da die ASCII-Codes für die Ziffern „0“ bis „9“ sind. sind sequentiell und stellen die numerischen Werte direkt dar.

Das obige ist der detaillierte Inhalt vonWarum gibt das Subtrahieren von „0' von einem Zeichen in C seinen numerischen Wert zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn