CS50 1-6강 Hexadecimal

업데이트:
1 분 소요

alt

16진수

16진수(Hexadecimal)

  • 컴퓨터과학에서는 숫자를 10진수나 2진수 대신 16진수로 표현하는 경우가 많다.
  • 컴퓨터에서 데이터를 처리하기 위해 16진수를 사용할 때 장점이 있기 때문이다.
  • 16진수를 사용하면 10진수보다 2진수를 간단하게 나타낼 수 있다.

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

  • JPG 이미지 파일은 항상 255 216 255 로 시작되고 이것은 10진수이다.
  • 하지만 실제 컴퓨터 내에서는 10진수를 사용하지 않는다.
    - 컴퓨터는 0과 1만을 이해할 수 있기 때문이다.

alt

  • 먼저 255 216 255를 2진수로 나타내면 <그림 1>과 같다.
  • 2진수로 모든 데이터를 표현하기에는 너무 길어지기 때문에 16진수로 바꿔보자.
  • 2^4이 16이기때문에 4bits씩 두 덩어리로 나누어 보면 0000 부터 1111까지는
    16진수로 표현할 수 있다는 것을 알 수 있습니다.
  • 16진수에서 10부터 15까지는 어떻게 표기할까요.
    10은 a, 11은 b,...,15는 f를 대입하여 사용합니다.
  • 4bits씩 16진수로 변환후 0x를 붙혀 뒤에 오는 문자들이 16진수임을 알려줍니다.

16진수의 유용성

  • ASCII코드에 의해 “A,B,C”는 10진수로 65,66,67에 해당합니다.
  • 컴퓨터는 10진수를 이해할 수 없으므로 2진수로 표현해보면 아래처럼 됩니다.
    01000001 01000010 01000011
  • 컴퓨터가 처리할 수 있어야 하기 때문에 어쩔수 없지만 그 길이가 너무 긴 것을
    알수 있다.

결과

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

alt

생각해보기

  • 숫자 50, 126, 256을 16진수로 표현한다면 어떻게 하면 될까요?
    50 = 16*3+2 : 0x32
    128 = 16*8  : 0x80
    256 = 16*16 : 0x100
  • 왜 여러 가지 수 체계가 있을까요? 10진수만으로 부족한가요?
    디지털 세상은 복잡하기 지기 때문이다.
    그렇기 때문에 더욱 간단하게 나타낼 수 있는 수체계가 필연적이다.

댓글남기기