'0' 이라는 숫자를 나타내는 Ascii 값인 48을 빼주면 된다.
간단히 말해
0 이라는 문자는 Ascii 값 48 이고, 1이라는 문자는 Ascii값 49... 로 되어 있기 때문에
예로 2라는 숫자는 50 이라는 Ascii 코드로 약속 되어 있기 때문에
50 - 48 을 통해 2 라는 숫자가 나오고, 그 2라를 값을 int형으로 지정하면 된다.
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
 | 
// 문자형 숫자를 Integer로 변환하기 (1~10, A~F) 
int asciiToInteger(const char * str){ 
    int result = 0; 
    while (*str){ 
        if (*str >= '0' && *str <= '9'){ // 0~9 의 문자일 경우 
            result = result * 10 + *str - '0'; 
        } 
        else if (*str >= 'A' && *str <= 'F'){ // A~F의 문자일 경우 
            result = result * 10 + (*str - 'A') + 10; 
        }         
        str++; 
    } 
    return result; 
} 
 | cs |