본문 바로가기
공부(TIL)/스터디

[컴퓨터 구조] 데이터

by 하루지오 2024. 4. 5.

1. 정보 단위

비트(bit)

- 0과 1을 표현할 수 있는 가장 작은 단위
- n비트로 2의 n승 의 정보 표현 가능
- 프로그램은 수많은 비트로 이뤄져 있음

크기 : 비트<바이트<킬로바이트<메가바이트<기가바이트<테라바이트
용량 : 1byte=8bit / 1KB=1000byte / 1MB=1000KB / 1GB=1000MB / 1TB=1000GB

 

워드(word)

- CPU가 한번에 처리할 수 있는 정보의 크기 단위

크기: 하프 워드(half)<풀 워드(full)>더블 워드(double)

 

2. 이진법(binary)

개념

- 0과 1로 모든 수를 표현하는 방법
- 숫자가 1을 넘어가는 시점에서 자리올림

- 접두어 ob

- 1000(2) vs ob1000

음수

- 2의 보수

- flag를 사용해서 음수를 구분함 ex) 부호 비트(sign bit, 0이면 양수 / 1이면 음수 )

- 계산 방법

1) 먼저 음수를 표현하고자 하는 수의 절댓값을 이진법으로 표현

2) 모든 비트를 뒤집습니다. (0은 1로, 1은 0으로 변경)

3) 1을 더함

ex) -5를 8비트 이진법으로 표현
1) 5의 이진 표현: 00000101
2) 모든 비트를 뒤집은 값: 11111010
3) 1을 더한 값: 11111011

 

3. 십육진법

개념

- 0~9와 A~F로 모든 수를 표현하는 방법
- 많이 사용됨

- 접두어 ox

- 코드에 직접 써넣기도 함

- 15(16) vs ox15

십육진법↔이진법 변환
ex) D5 → 11010101
(D를 이진법으로 변환 + 5를 이진법으로 변환 =11010101)
(1101을 십육진법으로 변환 + 5를 십육진법으로 변환 = D5)

 

4. 인코딩(encoding) / 디코딩(decoding)

용어

- 문자 집합(Character Set): 컴퓨터가 이해하고 표현할 수 있는 문자 모음
- 인코딩(encoding): 문자를 0과 1을 이루어진 문자 코드로 번역하는 과정

- 디코딩(encoding): 0과 1을 이루어진 문자 코드를 해석하여 문자로 번역하는 과

인코딩(encoding)

1) 아스키코드(ASCII)

- 초창기 문자 집합 중 하나

- 알파벳, 숫자, 특수문자, 제어문자

- 7비트(문자) + 1비트(페리티 문자(parity bit))

    (+) 페리티 문자 : 데이터 오류를 검출하기 위해 사용되지만, 문자의 실제 의미나 값에는 직접적으로 영향을 주지 않음

- 최대 128개 문자 표현 가능(2의 7승)

   → 알파벳을 제외한 다른 문자, 다양한 특수문자 표현 불가

 

2) EUC-KR

- KS X 1001와 KS X 1003 기반의 한글 인코딩 방식

 (+) KS X 1001: 한글 문자 집합 표준

 (+) KS X 1003: 한글 정보 처리 표준

- 완성형 인코딩(초성, 중성, 종성을 한번에 인코딩)

- 글자 1개 ==2바이트==16비트==4자리 십육진수

- 2300여개 한글 표현 가능

  여전히 모든 한글 표현 불가

- 언어별로 인코딩을 해야 하는 단점 

 

3) 유니코드

- 통일된 문자 집합 ex) UTF-8, UTF-16, UTF-32

- Unicode Transformation Format

- 한글을 포함한 다양한 언어, 화살표와 같은 특수 문자, 이모티콘

- 현대 문자 표현에 있어 매우 중요한 위치

- 가변 길이 인코딩: 1바이트 ~ 4바이트     유니코드에 부여된 값에 따라 인코딩 결과가 달라짐

ex) '가' (U+AC00): 3바이트 / 0xEA 0xB0 0x80
ex) 이모지 🌍 (U+1F30D): 4바이트 / 0xF0 0x9F 0x8C 0x8D