(C언어) 변수에 저장된 값을 10진수 16진수 string으로 변환하기
2024. 1. 5. 17:47ㆍ코딩세상/C-언어
int형으로 저장된 값을 10진수 16진수 string으로 변환을 하여야 할 때가 있다.
일반적인 알고리즘으로는 다음과 같이 변환을 할 것이다.
1. 10진수로 변환 시 음수인지 양수인지 결정
2. 10진수로 변환 시 음수일때는 양수로 변환
3. 10또는 16으로 나눈 나머지 값을 char형으로 저장
4. 기존 값을 10 또는 16으로 나누어서 다시 저장
5. 0이 될때 까지 3,4를 반복
6. 저장된 값을 최근 값부터 출력될 수 있도록 배열 정렬
위의 알고리즘을 코드로 변환하면 아래와 같이 장황해진다.
쉽지 않은 코드가 되었다.
특히 16진수 변환에는 음수로 출력되지 않고 양수로 출력해야 되는 문제로 좀 더 복잡해졌다.
결과는 아래와 같이 정상적으로 출력이 되었다.
이제 이 프로그램을 sprintf를 사용하여 간단하게 바꾸어 보자.
아주 간단하게 printf문을 사용한 것과 같은 작업으로 쉽게 변환이 되는 것을 볼 수 있다.
알고리즘을 생각하여 구현을 해 보아도 문제가 없으나, 가능한 표준 API에서 처리가 될 수 있는지 확인해 보는 것도 많은 시간을 절약할 수 있다.
sprintf가 상당히 유용한 함수이므로 이 함수는 꼭 숙지해 주시면 문자열 생성에 정말 편하게 이용하실 수 있을 것이다.
'코딩세상 > C-언어' 카테고리의 다른 글
(C언어) String의 주소 이해하기 ("...") (1) | 2024.01.09 |
---|---|
(C언어) 연속된 enum 처리를 위한 switch문 사용하기 (case 0 ... 9:) (0) | 2024.01.08 |
(C언어) printf() 함수 성능 및 예외 상황에서 출력 이해하기 (1) | 2024.01.04 |
(C언어) 예제 프로그램 컴파일 하기 (3) | 2024.01.03 |
(C언어) 프로그램 실행 시 main을 어떻게 찾아갈까? (1) | 2024.01.02 |