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까지의 인코딩 결과를 만들어냄
- 통상 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 |