혼자 공부하는 컴퓨터구조 + 운영체제 Section 2. 데이터

jihyelee·2023년 7월 7일
1

achitecture-os

목록 보기
2/15

강의 링크

정보 단위

비트(bit)

  • 0과 1을 표현하는 가장 작은 정보 단위
  • n비트로 2의 n승 개의 정보 표현 가능
  • 프로그램은 수많은 비트로 이루어져 있음
  • 비트보다 큰 단위: 바이트, 킬로바이트, 메가바이트, 기가바이트, 테라바이트
    • 1 바이트(byte) = 8 비트
    • 1 킬로바이트(kB) = 1000 바이트
    • 1 메가바이트(MB) = 1000 킬로바이트
    • 1 기가바이트(GB) = 1000 메가바이트
    • 1 테라바이트(TB) = 1000 기가바이트

워드(word)

  • CPU가 1번에 처리할 수 있는 정보의 크기 단위
  • 하프(half) 워드, 풀(full) 워드, 더블(double) 워드

이진법

  • 1을 넘어가는 시점에 자리올림을 하여 0과 1만으로 모든 수를 표현하는 방법
  • 아래첨자 (2) 혹은 앞에 0b를 붙여 표기
  • 음수 표현을 위해 2의 보수 사용
    • 어떤 수를 그보다 큰 2^n에서 뺀 값
      • 11(2)을 음수로 표현: 100(2) - 11(2) = 01(2)
    • 모든 0과 1을 뒤집고 1을 더한 값
      • 11(2)을 음수로 표현: 00(2) + 1(2) = 01(2)
    • 플래그(flag)
      • CPU 내부의 특별한 플래그 레지스터에서 숫자가 양수인지 음수인지에 대한 표식을 저장

십육진법

  • 이진법으로는 숫자의 길이가 너무 길어짐
  • 컴퓨터의 데이터를 표현할 때 16진법도 많이 사용
    • 수가 15를 넘어가는 시점에 자리올림
    • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, ...
  • 아래첨자 (16) 혹은 앞에 0x를 붙여 표기

이진수 <-> 십육진수

문자 집합과 인코딩

  • 문자 집합(character set)
    • 컴퓨터가 이해할 수 있는 문자의 모음
  • 인코딩 (encoding)
    • 코드화하는 과정
    • 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정
  • 디코딩 (decoding)
    • 코드를 해석하는 과정
    • 0과 1로 표현된 문자 코드를 문자로 변환하는 과정

아스키 코드

  • 초창기 문자 집합 중 하나
  • 알파벳, 아라비아 숫자, 일부 특수문자 및 제어문자
  • 7비트로 하나의 문자 표현
    • 8비트 중 1비트는 오류 검출을 위해 패리티 비트 (parity bit)
    • 128개의 문자 표현 가능
  • 간단한 인코딩
  • but 한글을 포함한 다른 언어 문자, 다양한 특수문자 표현 불가
    • 128개보다 많은 문자를 표현할 수 없음
    • 8비트 확장 아스키 (extended ASCII) 등장, 여전히 부족
    • 언어별 인코딩 등장

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

  • 한글을 위한 인코딩이 필요
    • 영어는 알파벳을 이어 쓰면 단어가 됨
    • 한글은 초성, 중성, 종성의 조합으로 이루어짐
    • 완성형 인코딩 방식과 조합형 인코딩 방식이 존재
    • 하지만, 언어별 인코딩을 국가마다 하게 되면 다국어를 지원하는 프로그램 개발 시에는 언어별 인코딩 방식을 모두 이해해야 함
  • ECU-KR
    • KS X 1001 KS X 1003 문자집합 기반의 한글 인코딩 방식
    • 완성형 인코딩
    • 글자 하나하나에 2바이트 크기의 코드 부여
      • 2바이트 == 16비트 == 4자리 16진수로 표현
    • 2300여 개의 한글 표현 가능
    • 여전히 모든 한글을 표현하기에는 부족한 수
      • 쀏, 뙠, 훽 같은 한글은 표현 불가능

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

  • 유니코드
    • 통일된 문자 집합
    • 한글, 영어, 화살표와 같은 특수 문자, 이모티콘까지 표현
    • 현대 문자 표현에 있어 매우 중요한 위치
  • 유니코드의 인코딩 방식
    • utf-8, utf-16, utf-32, ...
  • utf-8 인코딩
    • UTF (Unicode Transformation Format) == 유니코드 인코딩 방법
    • 가변 길이 인코딩: 인코딩 결과가 1바이트 ~ 4바이트
    • 인코딩 결과가 몇 바이트가 될 지는 유니코드에 부여된 값에 따라 다름
      • 문자에 부여된 고유한 값(=코드포인트)에 따라 달라짐
profile
Graduate student at Seoul National University, majoring in Artificial Intelligence (NLP). Currently AI Researcher at LG CNS AI Lab

1개의 댓글

comment-user-thumbnail
2024년 1월 21일

정리 정말 잘하시네요

답글 달기