자바사춘기
117
2018-02-12 13:26:38 작성 2018-02-12 13:27:01 수정됨
3
477

16진수 변환문의.



hex to string 변환 기능을 보고 있는데.


서로 결과가 계속 안맞아 디버깅을 해보니. 사용하는 함수에 차이가 있었습니다.


보내주는 쪽은 


01234567890ABCDEF


이렇게 9다음 0이 들어가 있었구요.



제쪽은 구글링을 통해서 얻은 그런 함수들인데


0123456789ABCDEF


이렇게 0이 들어가 있지 않았습니다.




실제로 구글링을 더해보니. 9다음0이 들어가있는 함수들도 샘플이 있고. 그렇지 않은 함수들도 샘플이 있더라구요.


둘의 차이와 어떤 상황에 맞는건지 궁금합니다.


감사합니다.

0
0
  • 답변 3

  • 초코쪼꼬
    6k
    2018-02-12 13:51:07

    01234567890ABCDEF 으로 된다면.. hex 0은 정말 0 인가요? 10인가요?


    이건 말이 안되는 논리 같은데..


    해당 샘플이 어떤건지 주소라도 올려주세요.

    0
  • 자바사춘기
    117
    2018-02-12 14:00:18

    저도 당황해서요.. 0이 들어가있으면 총 17개 아닌가요??!! 


    https://gist.github.com/zydeco/10020864


    여기 페이지에 보시면 

    const char *hex = caps ? "01234567890ABCDEF" : "0123456789abcdef";


    이런 라인이 있답니다. 대문자 여부와 연관이 있는것 같기도한데요.

    제가 정확하게 모르겠어서요.. ㅠㅠ


    서로 결과값이 안맞아서. 보내주는 쪽 소스를 받아보니. hex 변환함수 내부에 저렇게 하드코딩이 되어있더라구요. 저는 일반적인 구글링 통해서 함수 찾아서 썻구요. 처음에 발견하자마자 그쪽에 오타아니냐 하려다가. 혹시해서 구글링해보니 저런게 떡 하니 나오더라구요. 차이점은 0이 있냐 없냐차이인데. 


    가르침이 필요합니다.. ^^;;

    0
  • 자바사춘기
    117
    2018-02-12 14:04:06

    혹시 16진수 표현에서 앞에 0이 들어갔을때. 1을 01로 표현하기 위한 그런 꼼수가 아닌가 싶기도 하지만. 일단은 정확하게 차이를 제가 잘 모르겠네요..

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.