Maison >développement back-end >C++ >Comment puis-je convertir efficacement un chiffre à un seul caractère en un entier en C/C ?

Comment puis-je convertir efficacement un chiffre à un seul caractère en un entier en C/C ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-10 11:20:12371parcourir

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

Conversion d'un seul caractère en entier

Lorsque vous traitez des données numériques stockées sous forme de caractères, il est crucial de les convertir en entiers pour les calculs. Bien que atoi() permette la conversion à partir d'une chaîne, cela implique une étape intermédiaire inutile.

Heureusement, il existe une méthode plus efficace basée sur l'encodage des chiffres de 48 (pour '0') à 57 (pour ' 9'). Cet encodage s'applique à différents schémas d'encodage, notamment ASCII et UTF-x.

Grâce à ces connaissances, vous pouvez soustraire « 0 » (ou 48) du caractère numérique pour obtenir sa valeur entière :

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

Vous pouvez également utiliser l'équivalent :

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

Bien que les deux méthodes donnent le résultat souhaité, le premier est généralement considéré comme plus lisible. Cette technique convertit efficacement les caractères uniques en entiers sans avoir besoin de manipulation de chaîne auxiliaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn