CS - 7. 자료의 저장과 표현
CS - 7. 자료의 저장과 표현
Sparta 내일배움캠프 학습으로, CS강의에 대한 공부를 위한 필기입니다.
01. 자료의 저장과 표현
1-1. 비트와 바이트
- 이진수
이진법이라고도 불리며, 0과 1 두 가지 숫자만을 사용하여 수를 나타내는 수의 체계
이진수 1010은 10진수로 10임
1
2
3
1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 *2^0
= 8 + 0 + 2 + 0
= 10
비트의 개념
비트는 컴퓨터에서 정보를 표현하는 가장 기본적인 단위
1비트 : 2가지, 2비트 : 4가지, 3비트 : 8가지, 8비트 : 256가지
ex)
숫자 : 42, 00101010
- 문자 : ‘A’ , ASCII 인코딩 : 65
- 색상 : 24비트 색상 - 빨강, 초록, 파랑 성분을 8비트씩
- 파일 : 픽셀 단위로 구성, 픽셀은 색상 정보를 나타내는 비트로 표현
바이트의 개념
바이트는 컴퓨터에서 데이터를 저장하고 처리하는 데 사용되는 단위, 여러 개의 비트를 모아놓은 형태, 보통 8개의 비트로 이루어짐
- ASCII 문자열 : “Hello”
- ‘H’ : 72 (01001000) -> 여기서 bit 8개가 하나의 byte
- ‘e’ : 101 (01100101)
- 이미지 파일
- 음악 파일
- 실행 파일
단위 | 바이트(B) | 비트(b) |
---|---|---|
비트(bit) | 1/8 바이트 | 1비트 |
바이트(byte) | 1 바이트 | 8비트 |
킬로바이트(KB) | 1000 바이트 | 8000비트 |
메가바이트(MB) | 10^6 바이트 | 8 x 10^6비트 |
기가바이트(GB) | 10^9 바이트 | 8 x 10^9바이트 |
테라바이트(TB) | 10^12 바이트 | 8 x 10^12바이트 |
2-1. 자료의 표현 형식
2-1-1. 텍스트 자료의 표현
- 컴퓨터에서 텍스트 자료를 표현하는 방법은 주로 문자 인코딩을 사용
- 문자 인코딩은 문자를 컴퓨터가 이해할 수 있는 숫자로 매핑하는 방식
- 1️⃣ ASCII
가장 일반적인 문자 인코딩 중 하나
- 7비트로 구성, 각각의 비트 조합은 128개의 고유한 문자를 나타냄
- 영어 알파벳, 숫자, 특수 문자 등을 포함, ex) 대문자 ‘A’ : 65
- ASCII로 표현할 수 있는 문자들 외에 추가적인 문자를 지원해야 할 필요성이 있어 기존 7비트에 1비트를 추가하여 8비트를 사용한 코드가 정의 되어있음. 이런 코드를 확장(extend) ASCII라고 함. 256(=28)개의 문자를 표현할 수 있음
- 그러나 ASCII로는 영어와 몇 가지 특수 문자만을 표현할 수 있어 이런 문제를 해결한 코드는 유니코드와 UTF-8
2️⃣. 유니코드
전 세계의 모든 문자를 고유한 코드 포인트로 나타내는 국제 표준
- 유니코드는 U+로 시작하며, 각 문자는 16진수 값으로 표현된 코드 포인트를 나타냄
- 각 문자에는 유니코드 코드 포인트라고 불리는 고유한 식별자가 할당됨. 이 코드 포인트는 16진수로 표현되면 예를 들어 “A”는 U+0041과 같이 표현
- 유니코드는 문자를 표현하는 방식에 대한 표준이며, 실제로 문자를 저장하거나 전송하는 방식에 대한 규정은 아님
- 3️⃣. UTF-8
유니코드를 컴퓨터에서 저장하고 전송하기 위한 가변 길이 문자 인코딩 방식
- ASCII 문자에 대해서 7비트로 표현, 다른 유니코드 문자는 8비트 이상으로 확장하여 표현, 이를 통해 효율적으로 저장하고 전송할 수 있음
- 가변 길이 인코딩이기 때문에 유니코드 코드 포인트를 다양한 크기의 바이트 시퀀스로 변환함. ASCII 문자는 1바이트로 표현, 추가적인 문자는 2바이트~최대 4바이트까지 사용됨
💡💡
유니코드는 문자를 고유한 코드 포인트로 나타내는 국제 표준
UTF-8은 유니코드를 컴퓨터에서 효율적으로 저장하고 전송하기 위한 인코딩 방식
UFT-8은 가변 길이 인코딩을 사용하여 다양한 크기의 바이트 시퀀스로 문자를 표현함
1
2
3
4
5
6
7
❓ 유니코드 같이 큰 단위의 바이트를 사용하면 모든 숫자나 문자 등을 표현할 수 있는데 왜 굳이
프로그래밍을 하면 UTF-8 같이 다양한 데이터 타입을 사용하는 걸까?
- 컴퓨터는 받아들이는 모든 정보를 메모리에 저장하게 되는데, 1과 같은 작은 수를 표현하는데
4Byte를 사용해서 표현하게 되면 그만큼의 메모리가 낭비됨.
이처럼 메모리가 넉넉하지 못한 환경에서 동작하는 프로그램을 사용한다면 효율적으로 메모리를
사용하는 것이 중요
2-1-2. 숫자 자료의 표현
- 부호 없는 정수
이진수를 사용하여 양수만을 표현
ex) 8비트로 표현된 부호 없는 정수에서 숫자 42는 이진수로 00101010으로 표현
- 부호 있는 정수
부호 있는 정수는 양수와 음수를 모두 표현할 수 있음
일반적으로 2의 보수 표현 방식을 사용
- 양수의 부호 비트 : 0, 음수의 부호 비트 : 1
- ex) 8비트로 표현된 부호 있는 정수에서 숫자 -42는 이진수로 11010110
1
2
3
4
5
6
7
8
9
10
11
❓ 2의보수
1. 42의 이진수 표현:
- 42는 이진수로 00101010
2. 1의 보수:
- 2의 보수 변환을 위해 42의 이진수에 대해 1의 보수를 취함. 1의 보수는 0을 1로, 1을 0으로 반전시킴
- 42의 1의 보수는 11010101
- 00101010를 반전한것
3. 2의 보수:
- 1의 보수를 취한 결과에 1을 더함으로써 2의 보수를 얻을 수 있음
- 11010101에 1을 더하면 11010110
- 이는 -42를 음수로 표현한 2의 보수 표현
- 실수
일반적으로 부동 소수점 표현 방식
부동 소수점은 정밀도와 범위를 조절할 수 있음
2-1-3. 멀티미디어 자료의 표현
- 이미지
이미지는 비트맵(bitmap) 떠는 벡터(vector) 형식으로 표현
- 비트맥 이미지는 픽셀로 구성, 벡터 이미지는 수학적인 식이나 명령어로 구성
- JPEG와 PNG는 흔히 사용되는 비트맵 이미지 형식
- SVG는 대표적인 벡터 이미지 형식
- 오디오
일련의 연속적인 음향 신호로 표현
- PCM은 가장 기본적인 도이오 표현 방식, 아날로그 오디오 신호를 디지털 신호로 변환
- WAV와 AIFF는 PCM 오디오를 저장하기 위해 사용되는 형식
- 압축된 오디오 형식으로는 MP3, AAC
- 동영상
연속적인 이미지 프레임의 시퀀스
- 동영상은 주로 비트맵 이미지와 오디오를 조합하여 구성, AVI, MP4, MKV 등의 형식이 사용
- 동영상 압축 형식으로는 MPEG 시리즈, H.264, VP9, AV1 등
This post is licensed under CC BY 4.0 by the author.