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

수집가 루브도·2023년 7월 30일
0

2. 데이터

2-1. 숫자 표현

1) 정보 단위

  • Bit, 비트

    • 0과 1로 두 가지 정보를 표현할 수 있는 가장 적은 정보 단위
      • ex. 꺼짐(0) / 켜짐(1)
    • n 개의 비트로 2n 개의 정보 표현
    • 비트 이상의 단위
      • Byte, 바이트
        • 1 byte = 8 bit
        • 28 = 256 개의 정보
      • kB, 킬로바이트
        • 1 kilobyte = 1000 byte
      • MB, 메가바이트
        • 1 megabyte = 1000 kilobyte
      • GB, 기가바이트
        • 1 gigabyte = 1000 megabyte
      • TB, 테라바이트
        • 1 terabyte = 1000 gigabyte
  • 워드, word

    • CPU가 한 번에 처리할 수 있는 데이터 크기
    • half word, full word, double word로 구분
      • ex. x86 64 bit
        • half word = 32 bit
        • full word = 64 bit
        • double word = 128 bit

2) 이진법

  • 이진수 : 0과 1로 표현한 수

    • 한 자리가 1보다 커질 때마다 자리 수 증가
      • 일상 상활의 수 체계 : 십진법, 십진수
    • 접두사 0b 또는 아래첨자 (2)로 구분
  • 이진법 음수 표현

    • 2의 보수
      • 어떤 수를 그보다 큰 2n에서 뺀 값
      • 1의 보수 : 모든 자리 수를 뒤집은 형태 ( 0 => 1, 1 => 0)
      • 2의 보수 : 1의 보수 + 1
      • 한계 : 0, 2n의 값의 음수 구할 수 없음
    • 플래그
      • 해당 이진수가 양수인지 음수인지 구분하기 위한 정보

3) 십육진법

  • 십육진법
    • 한 자리에 16개 정보 표시
      • 0~9, A~F (10~15)
    • 이진수에 비해 더 적은 자릿 수로 정보 표현 가능
    • 접두사 0x 또는 아래첨자 (16)로 구분
  • 이진수와의 변환
    • 십육진수 1자리 = 4자리 이진수
      • ex. 0x1A2B = 0b 0001 1010 0010 1011
    • 이진수 4자리 = 십육진수 1자리
      • ex. 0b 1010 0100 = 0xA4

2-2. 문자 표현

1) 문자 집합과 인코딩

  • 문자 집합
    • 컴퓨터가 인식하고 표현할 수 있는 문자의 모음
  • 문자 인코딩
    • 문자를 이진수 코드화
  • 문자 디코딩
    • 이진수 코드를 사람이 이해할 수 있는 문자로 변환

2) 아스키 코드

  • ASCII, American Standard Code for Information Interchange
    • 초창기 문자 집합
    • 영어 알파벳, 아라비아 숫자, 일부 특수 문자 포함
    • 7비트(128개)의 문자 표현 + 1비트 패리티 비트(오류 검출)
    • 코드 포인트(Code Point) : 글자에 부여된 고유한 값
      • 'A' = 65 / 'a' = 97
  • 확장 아스키
    • 문자 표현 범위를 8비트로 증가(256개)

3) EUC-KR

  • 영어권 이외의 문자를 인코딩 하기 위한 방식
  • 한글 인코딩의 특징
    • 한글 음절의 구조 : 1음절 = 초성 + 중성 + 종성
    • 구분
      • 완성형 인코딩 : 하나의 음절 형태에 코드 부여
      • 조합형 인코딩 : 초성, 중성, 종성에 각각 비트열 할당
  • EUC-KR의 한글 인코딩 방식
    • 완성형 인코딩
    • 1음절 = 2바이트
    • 한계 : 문자 집합에 정의되지 않은 조합 존재
      • MS CP949에서 확장되었으나 여전히 한계 존재

4) 유니코드와 UTF-8

  • 유니코드 : 각 언어마다 다른 인코딩 방식을 두는 것이 아닌 표준 문자 집합
  • 코드 포인트를 인코딩 값으로 사용하는 것이 아닌 UTF-8, -16, -32로 구분하여 인코딩

참고자료

📚강민철, 『혼자 공부하는 컴퓨터 구조 + 운영체제』, 한빛미디어, 2022.
📹유튜브 공식 강의 4강
🐈‍⬛책 부록 GitHub

profile
다양하게 보고 배워 내 것으로 스케치하기

0개의 댓글

관련 채용 정보