Converting a Single Character to an Integer
When dealing with numeric data stored as characters, it's crucial to convert them to integers for calculations. While atoi() allows for conversion from a string, this involves an unnecessary intermediate step.
Fortunately, there's a more efficient method based on the encoding of digits from 48 (for '0') to 57 (for '9'). This encoding applies across various encoding schemes, including ASCII and UTF-x.
Using this knowledge, you can subtract '0' (or 48) from the digit character to obtain its integer value:
char c = '1'; int i = c - '0'; // i is now equal to 1, not '1'
Alternatively, you can use the equivalent:
char c = '1'; int i = c - 48; // i is now equal to 1, not '1'
While both methods yield the desired result, the former is generally considered more readable. This technique effectively converts single characters to integers without the need for auxiliary string manipulation.
The above is the detailed content of How Can I Efficiently Convert a Single Character Digit to an Integer in C/C ?. For more information, please follow other related articles on the PHP Chinese website!