2장: 컴퓨터에서의 데이터 표현
2-1: 비트, 바이트, 이진법, 십육진법
1. 비트와 바이트
- 비트는 컴퓨터에서 가장 작은 데이터 단위로, 0과 1의 값을 가질 수 있다.
- 바이트는 8개의 비트가 모인 것으로, 대부분의 컴퓨터에서 기본 데이터 단위로 사용된다.
- 예시: 1101 (4비트), 11010101 (8비트, 1바이트)
2. 이진법과 음수 표현
- 진법은 0과 1만 사용하는 진법으로, 컴퓨터에서 사용하는 데이터를 표현하는 기본 방식이다.
- 음수는 2의 보수를 이용하여 표현되며, 가장 왼쪽 비트가 부호 비트로 사용된다.
- 예시: 양수 5는 이진법으로 0101, 음수 -5는 2의 보수를 취한 1011로 표현된다.
3. 십육진법
- 십육진법은 0부터 9까지의 숫자와 A부터 F까지의 영문자를 사용하여 16개의 기호로 숫자를 표현하는 방식이다.
- 퓨터에서 데이터를 간결하게 표현할 때 사용되며, 4비트 이진수를 한 자리의 십육진수로 표현할 수 있다.
- 예시: 이진수 1010 1101은 십육진법으로 AD로 표현된다.
2-2: 문자집합, 아스키코드, EUC-KR, 유니코드 (1/2)
1. 문자집합
- 문자집합은 문자와 컴퓨터에서 사용할 수 있는 숫자 코드 간의 대응 관계를 정의한 것이다.
- 컴퓨터에서 문자를 저장하거나 처리하기 위해 문자집합이 필요하다.
2. 아스키코드
- 아스키코드는 가장 기본적인 문자집합으로, 128개의 문자(알파벳 대소문자, 숫자, 특수문자 등)를 7비트 이진수로 표현한다.
- 예시: 'A'는 아스키코드로 65, 이진수로 1000001로 표현된다.
3. EUC-KR
- EUC-KR은 한글을 포함한 2,350자를 표현할 수 있는 문자집합으로, 한글 완성형 코드인 KSC5601을 확장한 것이다.
- 한글은 2바이트로 표현되며, 약 8,000자 이상의 한글을 표현할 수 있다.
- 예시: '가'는 EUC-KR 코드로 0xB0A1, 이진수로 10110000 10100001로 표현된다.
2-2: 문자집합, 아스키코드, EUC-KR, 유니코드 (2/2)
4. 4. 유니코드와 UTF 인코딩
- 1) 유니코드
유니코드는 전 세계의 모든 문자를 표현하기 위한 국제 표준 문자 집합이다.
유니코드는 각 문자에 고유한 코드 포인트(숫자)를 할당하며, 다양한 글자를 동시에 사용할 수 있다.
- 2) UTF 인코딩
UTF(Unicode Transformation Format)은 유니코드를 실제로 저장하고 전송할 때 사용하는 인코딩 방식이다.
UTF-8, UTF-16, UTF-32 등 다양한 인코딩 방식이 있어 선택적으로 사용할 수 있다.
- 3) UTF-8
가장 널리 사용되는 인코딩 방식이며, 1바이트부터 4바이트까지 가변 길이로 문자를 표현한다.
아스키코드와 호환성을 유지하면서, 한글, 한자, 이모티콘 등 다양한 문자를 표현할 수 있다.
예시: 'A': 코드 포인트 U+0041, UTF-8 이진수: 01000001 (1바이트)
'가': 코드 포인트 U+AC00, UTF-8 이진수: 11100010 10101100 10000000 (3바이트)
'𝄞': 코드 포인트 U+1D11E, UTF-8 이진수: 11110000 10011101 10000100 10011110 (4바이트)
- 4) UTF-16
2바이트 또는 4바이트로 문자를 표현하는 인코딩 방식이다.
주로 아시아 언어에 적합하며, 유니코드의 기본 다국어 평면(BMP) 문자는 2바이트로 표현된다.
예시:'A': 코드 포인트 U+0041, UTF-16 이진수: 00000000 01000001 (2바이트)
'가': 코드 포인트 U+AC00, UTF-16 이진수: 10101100 00000000 (2바이트)
'𝄞': 코드 포인트 U+1D11E, UTF-16 이진수: 11011000 01001101 11011100 10011110 (4바이트)
- 5) UTF-32
모든 유니코드 문자를 4바이트로 표현하는 고정 길이 인코딩 방식이다.
메모리 사용이 비효율적일 수 있지만, 모든 문자가 동일한 길이기 때문에 처리 속도가 빠르다는 장점이 있다.
예시: 'A': 코드 포인트 U+0041, UTF-32 이진수: 00000000 00000000 00000000 01000001 (4바이트)
'가': 코드 포인트 U+AC00, UTF-32 이진수: 00000000 00000000 10101100 00000000 (4바이트)
'𝄞': 코드 포인트 U+1D11E, UTF-32 이진수: 00000000 00011101 00010001 11101110 (4바이트)
요약
- 비트는 컴퓨터에서 가장 작은 데이터 단위로, 0과 1의 값을 가진다. 바이트는 8개의 비트가 모인 것으로, 기본 데이터 단위로 사용된다.
- 이진법은 0과 1만 사용하는 진법으로, 컴퓨터에서 사용하는 데이터를 표현하는 기본 방식이다. 음수는 2의 보수를 이용하여 표현된다.
- 십육진법은 0부터 9까지의 숫자와 A부터 F까지의 영문자를 사용하여 16개의 기호로 숫자를 표현하는 방식이다.
문자 집합은 글자와 숫자 등을 컴퓨터에서 표현하기 위해 사용되는 문자들의 집합이다.
- 아스키 코드는 128개의 문자를 7비트 이진수로 표현하는 문자 집합으로, 영문 알파벳, 숫자, 특수문자 등이 포함되어 있다.
- EUC-KR은 한국어 문자를 표현하기 위해 사용되는 확장 아스키 코드이며, 완성형으로 구성되어 있다.
- 유니코드는 전 세계의 모든 문자를 표현하기 위한 국제 표준 문자 집합으로, 각 문자에 고유한 코드 포인트를 할당한다.
- UTF 인코딩은 유니코드를 저장하고 전송할 때 사용하는 인코딩 방식이다. UTF-8, UTF-16, UTF-32 등 다양한 인코딩 방식이 있어 선택적으로 사용할 수 있다.