2. 데이터
2-1. 숫자 표현
1) 정보 단위
-
Bit, 비트
- 0과 1로 두 가지 정보를 표현할 수 있는 가장 적은 정보 단위
- n 개의 비트로 2n 개의 정보 표현
- 비트 이상의 단위
Byte, 바이트
- 1 byte = 8 bit
- 28 = 256 개의 정보
- kB, 킬로바이트
- 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개 정보 표시
- 이진수에 비해 더 적은 자릿 수로 정보 표현 가능
- 접두사 0x 또는 아래첨자 (16)로 구분
- 이진수와의 변환
- 십육진수 1자리 = 4자리 이진수
- ex. 0x1A2B = 0b 0001 1010 0010 1011
- 이진수 4자리 = 십육진수 1자리
2-2. 문자 표현
1) 문자 집합과 인코딩
- 문자 집합
- 컴퓨터가 인식하고 표현할 수 있는 문자의 모음
- 문자 인코딩
- 문자 디코딩
- 이진수 코드를 사람이 이해할 수 있는 문자로 변환
2) 아스키 코드
ASCII
, American Standard Code for Information Interchange
- 초창기 문자 집합
- 영어 알파벳, 아라비아 숫자, 일부 특수 문자 포함
- 7비트(128개)의 문자 표현 + 1비트 패리티 비트(오류 검출)
- 코드 포인트(Code Point) : 글자에 부여된 고유한 값
- 확장 아스키
3) EUC-KR
- 영어권 이외의 문자를 인코딩 하기 위한 방식
- 한글 인코딩의 특징
- 한글 음절의 구조 : 1음절 = 초성 + 중성 + 종성
- 구분
- 완성형 인코딩 : 하나의 음절 형태에 코드 부여
- 조합형 인코딩 : 초성, 중성, 종성에 각각 비트열 할당
- EUC-KR의 한글 인코딩 방식
- 완성형 인코딩
- 1음절 = 2바이트
- 한계 : 문자 집합에 정의되지 않은 조합 존재
- MS CP949에서 확장되었으나 여전히 한계 존재
4) 유니코드와 UTF-8
유니코드
: 각 언어마다 다른 인코딩 방식을 두는 것이 아닌 표준 문자 집합
- 코드 포인트를 인코딩 값으로 사용하는 것이 아닌 UTF-8, -16, -32로 구분하여 인코딩
참고자료
📚강민철, 『혼자 공부하는 컴퓨터 구조 + 운영체제』, 한빛미디어, 2022.
📹유튜브 공식 강의 4강
🐈⬛책 부록 GitHub