1 분 소요

❄️ David Malan 교수의 컴퓨터 과학 교양 강좌: CS50을 바탕으로 정리한 내용입니다.


컴퓨터과학에서는 숫자를 10진수나 2진수 대신 16잰수(Hexadecimal)로 표현하는 경우가 많습니다.
컴퓨터에서 데이터를 처리하기 위해 16진수를 사용할 때 장점이 있기 때문입니다.
16진수를 사용하면 10진수보다 2진수를 간단하게 나타낼 수 있습니다.
16진수로 값을 표현하는 방법을 이해하고 나면 16진수, 2진수, 10진수를 변환하는 프로그램을 만들어볼 수 있습니다.

10진수를 16진수로 바꾸어보기

스크린샷 2023-06-14 오전 12 09 09
JPG 이미지 파일은 항상 255 216 255로 시작되고 이것은 10진수입니다.
하지만 실제 컴퓨터 내에서는 10진수를 사용하지 않습니다.
컴퓨터는 0과 1만을 이해할 수 있기 때문입니다.

먼저 255 216 255를 2진수로 나타내보면 위 사진과 같습니다.
2진수로 모든 데이터를 표현하기에는 너무 길어지기 때문에 16진수로 바꾸어 보겠습니다.
2^4이 16이기 때문에 4bits 씩 두 덩어리로 나누어보면 0000부터 1111까지는 16진수로 표현할 수 있다는 것을 알 수 있습니다.

그렇다면 16진수에서 10부터 15까지는 어떻게 표기할까요?
10은 a, 11은 b, …, 15는 f를 대입하여 사용합니다.
4bits 씩 16진수로 변환 후 0x를 붙혀 뒤에 오는 문자들이 16진수임을 알려줍니다.

  • 10진수를 16진수로 변환하는 방법
    • 10진수를 2진수로 나타내기
    • 2진수를 4bits 씩 두 덩어리로 나누기
    • 각각의 덩어리를 16진수로 나타내기

16진수의 유용성

스크린샷 2023-06-14 오전 12 13 11
ASCII 코드에 의해 A, B, C는 10진수로 65, 66, 67에 해당합니다.
컴퓨터는 10진수를 이해할 수 없으므로 2진수로 표현해보면 010000001 01000010 01000011이 됩니다.
컴퓨터가 처리할 수 있어야 하기 때문에 어쩔 수 없지만 그 길이가 너무 긴 것을 알 수 있습니다.

하지만 16진수로 표현하면 2진수로 표현했을 때 보다 훨씬 간단해집니다.
또한 컴퓨터는 8개의 비트가 모인 바이트 단위로 정보를 표현합니다.
2개의 16진수는 1byte의 2진수로 변환되기 때문에 정보를 표현하기 매우 유용합니다.

  • 1개의 16진수 -> 4bits의 2진수
  • 2개의 16진수 -> 1byte(=8bits)의 2진수

16진수로 ‘LOVE’를 표현하기

스크린샷 2023-06-14 오전 12 23 41

위 표에 따라 L을 2진수로 나타내면 1001100이다.
padding을 통해 8자리로 만들면 01001100이다. 네 자리씩 나누면 0100, 1100이다.
이를 10진수로 나타내면 4, 12 이다.
이를 16진수로 나타내면 4, C 이다.
✅ 따라서 L -> 4C

O를 2진수로 나타내면 1001111이다.
padding을 통해 8자리로 만들면 01001111이다. 네 자리씩 나누면 0100, 1111이다.
이를 10진수로 나타내면 4, 15 이다.
이를 16진수로 나타내면 4, F 이다.
✅ 따라서 O -> 4F

V를 2진수로 나타내면 1010110이다.
padding을 통해 8자리로 만들면 01010110이다. 네 자리씩 나누면 0101, 0110이다.
이를 10진수로 나타내면 5, 6 이다.
이를 16진수로 나타내면 5, 6 이다.
✅ 따라서 V -> 56

E를 2진수로 나타내면 1000101이다.
padding을 통해 8자리로 만들면 01000101이다. 네 자리씩 나누면 0100, 0101이다.
이를 10진수로 나타내면 4, 5 이다.
이를 16진수로 나타내면 4, 5 이다.
✅ 따라서 E -> 45

따라서 답은 4C 4F 56 45 이다.



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기

태그:

카테고리:

업데이트: