공룡호가 사는 세상 이야기

ASCII 코드 '0'이 48인 것을 생각하면,
문자형 - '0'을 하면 간단하게 처리된다.

Ex) '2' -> '2'(50) - '0'(48) = 2
Ex) '10' -> '10'(58) - '0'(48) = 10

조금만 생각하면 유용하게 쓸 수 있다.
scanf로 문자를 받는데, 숫자가 들어갔다고 가정하자.
그러면 문자 숫자가 될 터인데, 이것을 숫자로 바꿀 때에는 다음과 같다.

while ( (ch = getchar()) != "\n" )
{
num = num * 10 + (ch - '0');
}

: 또하나의 포인트
-> num * 10숫자문자가 1개 이상일때 끝까지 읽으면서 이전에 읽었던 숫자들을 한자리씩 올려주는 역할을 한다. 즉, 다시 말하면 10진수로 바꾸기 위해 쓰였다는 것을 알 수 있다.
num * 8로 하면 8진수로, num * 16으로 하면 16진수로 바뀌어 진다.

'프로그래밍' 카테고리의 다른 글

DP(Dynamic Programming)  (0) 2006.01.20
fseek() 함수  (1) 2006.01.19
strcmp() 함수  (0) 2006.01.19
칼로리 계산(Back Tracking)  (2) 2006.01.18
ACM 10018 Reverse And Add  (0) 2006.01.16