이설아
Chap02

01. 0과 1로 숫자를 표현하는 방법

정보 단위

  • 비트: 가장 작은 정보 단위

이진법

  • 수학에서 0과 1만으로 모든 숫자를 표현하는 방법

  • 십진법: 우리가 일상적으로 숫자를 세는 방법

  • 2진수의 음수 표현

    • 2의 보수 방법을 많이 사용

      ⇒ 2의 보수를 구해 해당 값을 음수로 간주

    • 모든 0과 1을 뒤집고 거기에 1을 더한 값

    • 해당 수가 음수인지 양수인지 어렵기에 플래그를 사용

      ex) 이진법 11의 음수: 01

십육진법

  • 수가 15를 넘어가는 시점에 자리 올림을 하는 숫자 표현 방식

  • (16) 첨자를 붙이거나 숫자 앞에 0x를 붙여 구분

  • 16진수를 이진수로 변환

    • 16진수 한 글자를 4비트의 이진수로 간주

  • 이진수를 십육진수로 변환

    • 이진수를 네개씩 끊고 4개의 숫자를 하나의 16진수로 변환

02. 0과 1로 문자를 표현하는 방법

문자 집합과 인코딩

문자집합

  • 컴퓨터가 인식하고 표현할 수 있는 문자의 모음
  • 컴퓨터는 집합에 속해 있는 문자를 이해할 수 있고, 반대로 문자 집합에 속해 있지 않은 문자는 이해할 수 없음

문자 인코딩

  • 문자를 0과 1로 변환하는 과정
  • 같은 문자 집합에 대해서도 다양한 인코딩 방법이 있을 수 있음

문자 디코딩

  • 0과 1로 이루어진 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정

아스키 코드

  • 초창기 문자 집합 중 하나로 영어 알파벳, 아라비아 숫자, 일부 특수 문자를 포함

  • 아스키 문자들은 각각 7비트로 표현

    ⇒ 총 128개의 문자를 표현 가능

  • 실제 아스키 문자는 8비트를 사용하지만 그 중 1비트는 패리티 비트(parity bit)

    ⇒ 패리티 비트는 오류 검출을 위해 사용되는 비트로 실질적으로 문자 표현을 위해 사용되는 비트는 7비트

  • 매우 간단하게 인코딩이 되지만 한글과 다른 특수문자들을 표현할 수 없음

EUC-KR

  • 한글 인코딩에는 완성형(한글 완성형 인코딩), 조합형(한글 조합형 인코딩) 방식이 존재

  • 완성형 인코딩은 초성, 중성, 종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드를 부여하는 방식

  • 조합형 인코딩은 초성을 위한 비트열, 중성을 위한 비트열, 종성을 위한 비트열을 할당하여 그 조합들로 하나의 글자 코드를 완성하는 인코딩 방식

  • EUC-KR은 완성형 인코딩 방식

  • 해당 인코딩 방식을 사용하면 웹사이트의 한글이 깨지는 등의 오류 발생

    ⇒ 이를 해결하기 위해 마이크로소프트이 CP949(code page 949)가 있지만 한글 전체를 표현하기엔 역부족

유니코드와 UTF-8

유니코드

  • 모든 언어를 아우르는 문자 집합과 통일된 표준 인코딩 방식을 위해 나온 것

  • EUC-KR보다 훨씬 다양한 한글 포함

  • 대부분 나라의 문자, 특수문자, 화살표, 이모티콘등까지 코드로 표현 가능한 통일된 문자

  • 현재 문자를 표현할 때 가장 많이 사용되는 표준 문자 집합

  • 글자에 부여된 값 자체를 인코딩된 값으로 삼지 않고 다양한 방법으로 인코딩

    ⇒ UTF-8, UTF-16, UTF-32등

UTF-8

  • 1바이트부터 4바이트까지의 인코딩 결과를 만들어냄

    ⇒ 1바트가 될 수도, 3바이트가 될 수도 있음

📍사진 출처

  • [한빛미디어 유튜브] 컴퓨터 공학 기초 강의