본문 바로가기

Research/Reverse

intager <-> string 변환과 속도





오버플로우와 unvaild char 을 제외한 부호 없는 정수에 대해서,


10진법 문자열 -> 정수

1. 변수 초기화

2. 문자열이 종료될때까지 알고리즘 반복. 변환된 수는 변수에 저장.

3. 문자 얻기

3. 변수 * 10 하고. 3에서 얻은 새로운 문자 더하고.

4. 2단계 반복.


정수 -> 10진법 문자열

1. 문자열 초기화

2. 정수가 0이면 알고리즘 종료.

3. 정수를 10으로 나누고 몫과 나머지 계산.

4. 나머지를 문자로 변환하고 변환된 문자를 문자열 뒤에 append.

5. 몫이 0이 아니면 몫으로 3~5단계 반복

6. 문자열 역순출력하여 문자열에 저장



알고리즘이 중요한 게 아니라, 이 과정들이 문자출력할 때마다 일어나고, 나눗셈은 겁나 느리다.

그래서 printf 류의 출력이 많아질수록 느려지는 것.