이 포스트를 만든 목적
- 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. 말로만 설명하는건 어려우므로, 실제 코드 샘플을 참고하길 바란다.
맛보기 코드
여담
- 해쉬값을 보통 헥사코드로 만들기 때문에, 원리를 알아 두는게 좋겠다.
'연구실 > 파편화된 기록들' 카테고리의 다른 글
ORA-12520 (2) | 2011.02.05 |
---|---|
루아(lua) 변수 범위, C 와 다른 체계를 쓴다. (0) | 2010.12.23 |
C/C++ 전처리 매크로(Predefined Macros) __DATE__, __TIME_ 값을 정수로 바꾸기 (0) | 2010.12.09 |
C++ safe delete, SAFE_DELETE, safe release 등 구현하기 (2) | 2010.12.03 |
C++ 에서 템플릿 인자 추론에 대한 고찰 문제 (0) | 2010.11.08 |
리눅스 컴파일 환경 구축하기 - Debian 편 (0) | 2010.10.12 |
소멸자로 객체를 초기화 하는 작업은 무척 위험하다. (2) | 2010.07.31 |
C++ 비가상 함수를 상속 클래스가 재정의 했을 경우 (4) | 2010.07.13 |
for while 사용 차이점 (0) | 2010.03.23 |
윈도우 7, 창 최대화 최소화, 화면 분할 좌측 붙이기, 화면 분할 우측 붙이기 (360) | 2010.01.15 |
최근댓글