본 게시물은 ‘강민철, ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022’ 을 인용하였습니다.
1. 0과 1로 숫자를 표현하는 방법
정보 단위
- 비트(Bit) : 0과 1을 나타내는 가장 작은 정보 단위
- 바이트(Byte) : 8개 비트를 묶은 단위
- 1Byte = 8Bit
- 1Byte = 2^8(256)개 정보 표현
- 킬로바이트(kB; Kilobyte) : 1바이트 1,000개 묶은 단위
- 메가바이트(MB; Megabyte) : 1킬로바이트 1,000개묶은 단위
- 기가바이트(GB; Gigabyte) : 1메가바이트 1,000개 묶은 단위
- 테라바이트(TB; Terabyte) : 1기가바이트 1,000개 묶은 단위
- cf. 워드(word) : CPU가 한 번에 처리할 수 있는 데이터의 크기(대부분 32/64비트)
이진법(binary)
- 이진수의 음수 표현 : 2의 보수(two’s complement)
- 실제 이진수로는 음수인지 양수인지 구분하기 어려워, 컴퓨터 내부에서는 ‘플래그(flag)’를 사용함
십육진법(hexadecimal)
- 이진법으로 0과 1만으로 모든 숫자를 표현하는 것은 숫자의 길이가 너무 길어지는 단점이 있음
십육진수 ↔ 이진수 변환
- 십육진수 → 이진수
- 십육진수를 이루는 숫자 하나를 이진수로 표현하려면 4비트 필요(2^4=16)
- 십육진수 한 글자를 4비트 이진수로 간주하기
- 이진수 → 십육진수
- 이진수 숫자 4개씩 끊고, 끊어 준 4개 숫자를 하나의 십육진수로 변환 후 이어붙임
2. 0과 1로 문자를 표현하는 방법
문자 집합과 인코딩
- 문자 집합(character set) : 컴퓨터가 인식하고 표현할 수 있는 문자 모음
- 문자 집합에 속한다고 해서 컴퓨터가 그대로 이해할 수 있는 것은 아님
- 문자 인코딩(character encoding) : 문자 -> 0과 1로 변환하는 과정
- 문자 디코딩(character decoding) : 0과 1로 이루어진 문자 -> 사람이 이해할 수 있는 문자로 변환하는 과정
아스키 코드
ASCII : American Standard Code for Information Interchange
- 영어 알파벳, 숫자, 일부 특수문자 포함
- 아스키 문자는 각 7비트로 표현됨
- 확장 아스키(Extended ASCII)도 등장하였으나 모든 문자 표현하기에 역부족
유니코드와 UTF-8
- 유니코드 : 모든 나라 언어의 문자 집합, 인코딩 방식 통일
- UTF-8 : 1~4바이트 까지의 인코딩 결과 만들어 냄