라벨이 16진수인 게시물 표시

[python] 16진법 사용 이유

이미지
  16진법이란 16진법은 10개의 숫자(0~9)와 6개의 문자 (A~F)를 사용해서 값을 표현합니다. 문자는 A(10), B(11), C(12), D(13), E(14), F(15)이며 아래 표를 참고하세요. 위 그림에서 2진법은 15라는 숫자를 4자리로 표현하는 반면 16진수는 1자리로 표현할 수 있습니다. (2의 4승을 표현할 수 있기 때문) 16진법은 4개의 비트 값을 "한번"에 표현할 수 있다는 점을 확인해주세요. 16진법을 사용하는 이유 바이트가 커질 때 2, 10, 16진법 범위를 보게되면 아래와 같습니다. 2진법은 바이트가 늘어남에 따라 자릿수가 기하급수적으로 늘어나는 단점이 존재하며, 사람은 10진수에 익숙하기 때문에 2진수로 적힌 값이 10진수로 얼마인지 직관적으로 파악하기 어렵습니다. 0b1111101000은 10진수로 얼마인가? -> 1000 반대로 10진법은 바이트마다 떨어지는 단위가 깔끔하지 않습니다.(255, 65535, 4294967295...) 또한 1000이라는 수는 2 바이트로 저장되는데, 만약 바이트 단위로 나눠 10진수로 표현할 때 문제가 발생합니다. (10진수는 바이트 단위로 나눠 떨어지는 값이 아니여서) 물론 각 바이트에 저장된 1000을 표현하기 위해 256(1바이트 범위)으로 나눠 몫과 나머지로 표현할 수 있습니다. (256 * 3 + 244 = 1000) 다만, 2바이트를 몫과 나머지로 표현한 그림을 보고 1000이라는 것을 직관적으로 이해할 사람은 거의 없을 겁니다. 마지막으로 16진법은 1바이트(8비트)마다 FF 단위로 증가하고 자릿수 또한 다른 진법보다 적게 사용합니다.  1000을 2진수로 표현할 때 사람이 직관적으로 변환 할 수 없고 계산을 통해  0b1111101000임을  알 수 있습니다. 하지만 16진법은 0x3e8(1000)로 훨씬 짧게 표현할 수 있으며, 16진법은 자릿수가 4비트를 의미하기 때문에 아래와 같이 직관적인 2진법 변환 및 해