연구실/파편화된 기록들
10진 정수를 헥사 코드, 헥스 코드, hex code 문자열로 만드는 방법
최익필
2010. 10. 14. 02:34
이 포스트를 만든 목적
- hex code 만드는 원리에 대해서 정리하기 위해서
이 포스트의 준비물
- g++ 4.3.2
- vim 7.1.xx
- project.vim
- make
- debian 5 64 bit
- VMware player 3.1.x
내용
헥사 코드, 헤스 코드, hex code 란 무엇인가?
- 다 같은 의미이다.
- 우리나라 말로는 16진수 표기법 이다.
- 영어로는 Hexadecimal code 이다.
언제 주로 사용하는가?
- 8bit 단위로 만들어진 Hash 값을 문자로 표기할 때
- RGB를 문자로 표기할 때
- 대부분의 경우, 사람이 정수로 인식하기 힘들어 문자로 변화할 때 이다.
어떻게 10진수를 16진수 문자열로 만들수 가?
- sprintf 혹은 sprintf_s 혹은 boost::format 등으로 만들 수 있다.
1. sprintf(버퍼, "%02X", 정수)
- 원리를 이해하여, 비트연산을 이용해 만들 수 있다.
1. 8비트 단위로 메모리를 쪼갠다. : 형변환으로 쪼갤수 있다.
2. 쪼갠 8비트를 다시 4비트씩 쪼갠다. : 비트연산으로 쪼갤수 있다.
3. 상위 4비트가 0xF0 부분을 차지하고, 하위 4비트가 0x0F 부분을 차지 한다.
4. 이것을 헥스 코드 테이블과 매칭시켜, 문자열을 얻어 내고, 이를 string 에 누적시킨다.
5. 말로만 설명하는건 어려우므로, 실제 코드 샘플을 참고하길 바란다.
맛보기 코드
여담
- 해쉬값을 보통 헥사코드로 만들기 때문에, 원리를 알아 두는게 좋겠다.