이 포스트를 만든 목적

  • 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. 말로만 설명하는건 어려우므로, 실제 코드 샘플을 참고하길 바란다.

맛보기 코드

여담

  • 해쉬값을 보통 헥사코드로 만들기 때문에, 원리를 알아 두는게 좋겠다.


posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요