컴퓨터 구조 &운영체제/컴퓨터구조 + 운영체제

데이터

busy맨 2024. 1. 22. 22:59

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

1) 정보 단위

  • 비트(bit)
    • 0과 1을 나타내는 가장 작은 정보 단위
    • 1 비트는 0 또는 1, 두 가지 정보를 표현
      • 2 비트 - 4 가지 정보(00,01,10,11)
      • 3 비트 - 8가지 정보(000,001,010,100,011,101,110,111)
    • 따라서 n 비트는 2^n 가지 정보를 표현
  • 바이트(byte)
    • 8개의 비트를 묶은 단위로 비트보다 한 단계 큰 단위
    • 2^8(256)개의 정보를 표현 가능

2) 이진법

  • 이진법(binary)
    • 0과 1만으로 모든 숫자를 표현하는 방법
    • 숫자가 1을 넘어가는 시점에서 자리 올림

 

  • 이진수의 음수 표현
    • 마이너스 부호(-)를 붙이면 컴퓨터는 이해할 수가 없음
    • 0과 1만으로 음수를 표현하는 방법 중 많이 사용되는 방법은 2의 보수(two's complement)를 사용하는 것
  • 2의 보수
    • 어떤 수를 그보다 큰 2^n에서 뺀 값 → 모든 0과 1을 뒤집고, 거기에 1을 더한 값
    • 컴퓨터는 플래그를 통해 음수와 양수를 구분
      1의 보수는 모든 0과 1을 뒤집은 값
    • 0이나 2^n 형태의 이진수에 2의 보수를 취하면 원하는 음수값을 얻을 수 없음

3) 16진법

  • 16진법(hexadecimal)
    • 이진수에 비해 더 적은 자릿수로 더 많은 정보를 표현
    • 0~9, A~F 총 16개의 문자로 정보를 표현

 

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

1) 문자 집합과 인코딩

  • 문자 집합(character set)
    • 컴퓨터가 인식하고 표현할 수 있는 문자의 모음
    • 컴퓨터는 문자 집합에 속해 있는 문자만을 이해
  • 문자 인코딩(character encoding)
    • 문자 집합에 속한 문자라고 해서 컴퓨터가 그대로 이해하는 것은 불가능
    • 문자를 0과 1로 변환해줘야 하는데, 이 과정을 문자 인코딩이라 함
      • 컴퓨터가 이해할 수 있도록 문자를 0과 1로 변환하는 과정
  • 문자 디코딩(character decoding)
    • 인코딩의 반대 과정
    • 0과 1로 이루어진 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정

 

2) 아스키 코드(ASCII)

  • 영어 알파벳과 아라비아 숫자, 그리고 일부 특수 문자를 포함
  • 아스키 문자들은 각각 7비트로 표현 → 총 2^7(128)개의 정보를 표현

  • Ex) 'A'는 십진수 65로 인코딩, 'a' 는 십진수 97로 인코딩
  • 아스키 코드는 한글을 표현할 수 없음

3) EUC-KR 

  • 한글 인코딩 방식
  • 한글 완성형 인코딩 방식과 한글 조합형 인코딩 방식이 존재
    • 완성형 인코딩
      • 초성, 중성, 종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드를 부여
      • '가'는 1, '나'는 2....이런 식으로 인코딩
    • 조합형 인코딩
      • 초성을 위한 비트열, 중성을 위한 비트열, 종성을 위한 비트열을 할당하여 그것들의 조합으로 하나의 글자
        코드를 완성하는 인코딩 방식
  • EUC-KR은 완성형 인코딩 방식
    • 초성, 중성, 종성이 모두 결합된 한글 단어에 2byte 크기의 코드를 부여

4) 유니코드와 UTF-8

  • 언어별로 인코딩이 필요한 경우 각 언어의 인코딩 방식을 모두 이해해야하는 단점
    → 모든 언어의 문자 집합과 인코딩 방식이 통일되게 만든다 → 유니코드(unicode)
  • 유니코드 집합
    • 각 문자마다 고유한 값이 부여
    • 글자에 부여된 값을 그대로 인코딩 하지 않고 다양한 방법으로 인코딩
      • UTF-8, UTF-16, UTF-32
  • UTF-8
    • 통상 1~4byte까지의 인코딩 결과를 만들어냄

 

'컴퓨터 구조 &운영체제 > 컴퓨터구조 + 운영체제' 카테고리의 다른 글

CPU의 작동 원리  (0) 2024.02.05
명령어  (0) 2024.02.02
CPU Scheduling  (0) 2023.08.29
프로세스  (0) 2023.08.14
운영체제 기초  (0) 2023.08.14