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

Wie kann ich eine Zeichenziffer effizient in eine ganze Zahl umwandeln?

Barbara Streisand
Barbara StreisandOriginal
2024-12-15 12:00:18315Durchsuche

How Can I Efficiently Convert a Character Digit to an Integer?

Ein Zeichen in eine ganze Zahl umwandeln

Frage:

Wie kann ich a effizient umwandeln? einzelnes Zeichen in einen ganzzahligen Wert umwandeln? Insbesondere muss ich bei einer gegebenen Ziffernfolge jede einzelne extrahieren, um sie in Berechnungen zu verwenden. Gibt es einen besseren Ansatz als die Verwendung von atoi()?

Antwort:

Anstatt das Zeichen vor dem Aufruf von atoi() in eine Zeichenfolge umzuwandeln, können Sie den numerischen Wert nutzen Darstellung von Ziffern in der Zeichenkodierung. In den meisten Kodierungen, einschließlich ASCII, UTF-x und anderen, sind die Zeichenkodierungen für Ziffern in sequentieller Reihenfolge, wobei „0“ 48 und „9“ 57 zugeordnet ist.

Dieses Wissen ermöglicht es Ihnen Konvertieren Sie eine Ziffer in eine Ganzzahl, indem Sie einfach ihren ASCII-Wert von „0“ (oder 48) subtrahieren. Zum Beispiel:

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

Dies ist äquivalent zu:

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

Während beide Methoden das gleiche Ergebnis erzielen, wird die erstere (c - '0') im Allgemeinen aufgrund von als besser lesbar angesehen seine Einfachheit.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Zeichenziffer 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