* 혼자 공부하는 컴퓨터 구조 + 운영체제 강의를 듣고 정리하는 글입니다. *
5강. 0과 1로 문자를 표현하는 방법
문자 집합과 인코딩
- 문자 집합(character set): 컴퓨터가 이해할 수 있는 문자의 모음
- 인코딩(encoding): 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정
- 디코딩(decoding): 0과 1로 표현된 문자 코드를 문자로 변환하는 과정
아스키코드
아스키코드: 초창기 문자 집합 중 하나(알파벳, 아라비아 숫자, 일부 특수 문자 및 제어 문자)
- 7비트로 하나의 문자 표현 -> 8비트 중 1비트는 오류 검출을 위해 사용되는 패리티 비트(parity bit)
- 인코딩이 간단하다는 장점. But, 한글을 포함한 다른 언어 문자, 다양한 특수 문자 표현 불가
- 아스키코드는 7비트로 하나의 문자를 표현하기에 128개보다 많은 문자 표현 X
- 8비트 확장 아스키(extended ASCII)의 등장 -> 여전히 부족
한글 인코딩: 완성형 vs 조합형 인코딩
그래서 한글을 인코딩하려면 따로 방식이 필요함. -> 완성형과 조합형
알파벳은 이어 쓰면 단어가 되지만, 한글은 초성, 중성, 종성의 조합으로 이루어졌기 때문에 다른 방식이 필요함.
EUC-KR
EUC-KR: 완성형 인코딩 방식
- 글자 하나하나에 2바이트 크기의 코드 부여 -> 2byte = 16bit = 4자리 십육진수로 표현
- 약 2350개의 한글 표현 가능 -> 여전히 모든 한글을 표현하기에는 부족
언어별 인코딩 방식의 문제점: 다국어를 지원하는 프로그램을 개발할 때엔 언어별 인코딩 방식을 모두 이해해야 한다.
해결하려면? 모든 언어, 특수문자까지 통일된 문자 집합을 사용 -> 통일된 문자 집합 & 인코딩 방식
= 유니코드 문자 집합 + utf-8
유니코드 문자 집합과 utf-8
유니코드: 통일된 문자 집합(한글, 영어, 특수 문자, 이모티콘 등) = 현대 문자 표현에 있어 매우 중요한 위치
- 유니코드의 인코딩 방식: utf-8, utf-16, utf-32,...
UTF(Unicode Transformation Format): 유니코드 인코딩 방법
- 가변 길이 인코딩: 인코딩 결과가 1~4바이트
- 인코딩 결과가 몇 바이트가 될지는 유니코드에 부여된 값(= 유니코드 코드 포인트)에 따라 다름
6강. 소스코드와 명령어
고급 언어와 저급 언어
고급 언어: 개발자가 이해하기 쉽게 만든 언어
- 컴파일 언어 - 컴파일 언어로 작성된 전체 소스 코드 -> 컴파일러가 컴파일 -> 저급 언어인 목적 코드로 변환
- 인터프리트 언어 - 인터프리터에 의해 한 줄씩 실행 -> 소스 코드 전체가 저급 언어로 변환되기까지 기다릴 필요 X
저급 언어: 컴퓨터가 이해하고 실행하는 언어
- 기계어: 0과 1로 이루어진 명령어로 구성된 저급 언어
- 어셈블리어: 0과 1로 이루어진 기계어를 읽기 편한 형태로 번역한 저급 언어
728x90
'✏️ > TIL' 카테고리의 다른 글
[혼자 공부하는 컴퓨터 구조 + 운영체제] 3 ~ 4강 정리 (0) | 2024.06.04 |
---|---|
[혼자 공부하는 컴퓨터 구조 + 운영체제] 1 ~ 2강 정리 (0) | 2024.06.01 |
[TIL] 2023.08.10 (0) | 2023.08.10 |
[Today I Learned] 2023.06.19 (0) | 2023.06.20 |
[Today I Learned] 2023.06.18 (0) | 2023.06.19 |