Heim >Backend-Entwicklung >C++ >Wie kann ich eine Zeichenziffer effizient in eine ganze Zahl umwandeln?
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!