[컴퓨터 공학 기초] 2. 데이터

이재환·2023년 2월 6일
0

CS 공부

목록 보기
2/5

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

정보의 단위

  • 비트 (bit) : 0과 1을 표현하는 가장 작은 정보 단위

  • nn 비트로 2n2^n 가지의 정보를 표현 가능

  • 바이트, 킬로바이트, ..., 테라바이트 등의 단위를 사용

바이트1 Byte8 bit
킬로바이트1 KiloByte1024 Byte
메가바이트1 MegaByte1024 KB
기가바이트1 GigaByte1024 MB
테라바이트1 TeraByte1024 GB
페타바이트1 PetaByte1024 TB
  • 워드

    • CPU가 한번에 처리할 수 있는 정보의 크기 단위
    • half-word, full-word, double word 의 단위도 있음

이진법

  • 0과 1로 수를 표현하는 방법

  • 십진수와 헷갈릴 수도 있어서 다음과 같이 표기함.

    • 1000(2)1000_{(2)}
    • 0b1000
  • 음수 표현하기 : 2의 보수법

    • 정의 : 어떤 수를 그보다 큰 2n2^n에서 뺀 값
    • 쉽게 : 모든 0과 1을 뒤집고 마지막에 1을 더한 값
    • Flag 레지스터를 통해 현재 값이 양수인지 음수인지 CPU에서 볼 수 있음.

십육진법

  • 이진수와 십육진수 사이의 변환이 쉬워서 컴퓨터 내부에서 많이 쓰임

    • 1000(15)1000_{(15)}
    • 0x1000

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

문자 집합과 인코딩

  • 문자 집합(character set) : 컴퓨터가 이해할 수 있는 문자의 모음

  • 인코딩(encoding) : 코드화하는 과정, 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정

  • 디코딩(decoding) : 코드를 해석하는 과정, 0과 1로 표현된 문자 코드를 문자로 변환하는 과정

아스키 코드(ASCII)

  • 초창기 문자 집합 중 하나

  • 알파벳, 아라비아 숫자, 일부 특수 문자 및 제어 문자(\n, \t, ...)

  • 8 - 1 = 7 비트로 하나의 문자를 표현

    • 1비트는 오류 검출을 위해 사용되는 parity bit
  • 인코딩 방법이 간단함.

  • 하지만, 7 bit로 하나의 문자를 표현하기 때문에 128개 이상의 문자를 표현할 수 없어서, 다른 언어의 문자, 다양한 특수 문자를 표현할 수 없음.

한글 인코딩 : 완성형 vs 조합형

  • EUC-KR
    • 완성형 인코딩으로 글자 하나 하나에 2 바이트 크기의 코드를 부여
    • 예를 들어 "가"는 b0a01 "값"은 b0aa로 인코딩 됨
    • 2300개 정도를 표현할 수 있지만 여전히 모든 한글을 표현하기에는 부족한 수임 (뙠, 휔, 쀓 등등)

  • 이런 식으로 언어별 인코딩을 수행하면, 다국어를 지원하는 프로그램을 개발할 때 매우 복잡하고 어려움.

유니코드 문자 집합과 utf-8

  • 유니코드
    • 통일된 문자 집합
    • 한글, 영어, 이모티콘, 특수문자 등 현대의 문자 표현에 있어 굉장히 중요한 문자 집합.
  • 유니코드의 인코딩 방식(utf : unicode transformation format)
    • utf-8, utf-16, ...
    • utf-8은 가변 길이 인코딩으로, 인코딩 결과가 1바이트 4바이트임.
    • 이는 유니코드에 부여된 값(유니코드 코드 포인트)에 따라 달라짐.
profile
사람

0개의 댓글