Heim >Backend-Entwicklung >C++ >Wie kann ich in C/C eine einzelne Ziffer effizient in eine ganze Zahl umwandeln?

Wie kann ich in C/C eine einzelne Ziffer effizient in eine ganze Zahl umwandeln?

Linda Hamilton
Linda HamiltonOriginal
2024-12-10 11:20:12243Durchsuche

How Can I Efficiently Convert a Single Character Digit to an Integer in C/C  ?

Ein einzelnes Zeichen in eine ganze Zahl umwandeln

Beim Umgang mit numerischen Daten, die als Zeichen gespeichert sind, ist es wichtig, sie für Berechnungen in ganze Zahlen umzuwandeln. Während atoi() die Konvertierung aus einem String ermöglicht, erfordert dies einen unnötigen Zwischenschritt.

Glücklicherweise gibt es eine effizientere Methode, die auf der Kodierung der Ziffern von 48 (für „0“) bis 57 (für „ 9'). Diese Kodierung gilt für verschiedene Kodierungsschemata, einschließlich ASCII und UTF-x.

Mit diesem Wissen können Sie „0“ (oder 48) vom Ziffernzeichen subtrahieren, um seinen ganzzahligen Wert zu erhalten:

char c = '1';
int i = c - '0'; // i is now equal to 1, not '1'

Alternativ können Sie das Äquivalent verwenden:

char c = '1';
int i = c - 48; // i is now equal to 1, not '1'

Während beide Methoden das gewünschte Ergebnis liefern, wird erstere im Allgemeinen als besser angesehen lesbar. Diese Technik wandelt einzelne Zeichen effektiv in ganze Zahlen um, ohne dass eine zusätzliche Manipulation der Zeichenfolge erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie kann ich in C/C eine einzelne Ziffer effizient in eine ganze Zahl umwandeln?. 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