Ch02. 데이터

CastleSilver·2022년 11월 14일
0

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

정보 단위

  • 비트(bit) : 0과 1을 나타내는 가장 작은 정보 단위. n비트는 2의 n승 가지 정보를 표현할 수 있다.
  • 바이트(byte) : 여덟 개의 비트를 묶은 단위. 1바이트 = 8비트 = 256가지 정보
  • 킬로바이트(KB : kilobyte) : 1000개의 바이트를 묶은 단위
  • 메가바이트(MB : megabyte) : 1000개의 킬로 바이트를 묶은 단위
  • 기가바이트(GB : gigabyte) : 1000개의 메가 바이트를 묶은 단위
  • 테라바이트(TB : terabyte) : 1000개의 기가 바이트를 묶은 단위
  • 워드(word) : CPU가 한 번에 처리할 수 있는 데이터 크기. 워드 크기는 CPU마다 다르지만 대부분 32비트 혹은 64비트 이다.
  • 하프 워드(half word) : 정의된 워드의 절반 크기
  • 풀 워드(full word) : 워드 1배 크기
  • 더블 워드(double word) : 워드 2배 크기

이진법

  • 0과 1만으로 모든 숫자를 표현하는 방법
  • 십진법과의 혼동을 막기 위해 이진수 끝에 아래첨자 (2)를 붙이거나 이진수 앞에 0b를 붙인다.
  • 음수 표현 방법
    • 2의 보수(어떤 수를 그보다 큰 2의 n승에서 뺀 값)
    • 즉 모든 0과 1을 뒤집고 거기에 1을 더한 값

십육진법

  • 수가 15를 넘어가는 시점에 자리 올림
  • 10, 11, 12, 13, 14, 15는 A, B, C, D, E, F로 표기한다.
  • 끝에 아래첨자 (16)를 붙이거나 앞에 0x를 붙인다.

십육진수 -> 이진수

  • 십육진수 한 글자를 4비트의 이진수로 간주
  • 각 글자를 따로따로 이진수로 변환하고 그대로 이어 붙이면 십육진수가 이진수로 변환

이진수 -> 십육진수

  • 이진수 숫자를 4개씩 끊고, 끊은 4개 숫자를 하나의 십육진수로 변환한 뒤 이어 붙이기

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

문자 집합과 인코딩

  • 문자 집합 : 컴퓨터가 인식하고 표현할 수 있는 문자의 모음. 컴퓨터는 문자 집합에 속해 있지 않은 문자는 이해할 수 없다.
  • 문자 집합에 속한 문자라도 그대로 이해할 수 없고 문자 인코딩(encoding) 후 0과 1로 이루어진 문자 코드로 변환해야 이해할 수 있다.
  • 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정을 문자 디코딩(decoding)이라 한다.

아스키 코드

  • 영어 알파벳, 아라비아 숫자, 일부 특수 문자가 포함된 문자 집합
  • 아스키 문자는 각각 7비트로 표현되고 총 2의 7승인 128개의 문자를 표현할 수 있다.
  • 아스키 문자에 대응된 0부터 127까지의 고유한 수를 아스키 코드라 한다.
  • 한글을 표현할 수 없다는 단점이 있다.

EUC-KR

  • 한글 인코딩 방식

    • 완성형 인코딩 : 초성, 중성, 종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드를 부여
    • 조합형 인코딩 : 초성, 중성, 종성을 위한 비트열을 할당해 그것들의 조합으로 하나의 글자 코드를 완성
  • EUC-KR은 대표적인 완성형 인코딩 방식이다. 한 글자에 2바이트(=16비트, 4자리 십육진수) 크기의 코드를 부여한다.

  • 총 2350개 정도의 한글 단어를 표현할 수 있지만 그래도 모든 한글을 표현할 수는 없다.


유니코드와 UTF-8

  • 유니코드 : 대부분 나라의 문자, 특수문자, 화살표, 이모티콘까지 코드로 표현할 수 있는 통일된 문자 집합
  • UTF(Unicode Transformation Format) : 유니코드를 인코딩하는 방법
  • UTF-8 : 1바이트부터 4바이트까지의 인코딩 결과를 만들어 낸다.
  • 붉은색 X가 있는 곳에 유니코드 문자에 부여된 고유한 값이 들어간다.
profile
우당탕탕 비전공자 개발자

0개의 댓글