'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 |
댓글 없음:
댓글 쓰기