티스토리 뷰

반응형

https://www.youtube.com/watch?v=peg8c6Gn-zc&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=6

 

초심으로 돌아가서 다시 정리하는 개념입니다.

이미 알고 있어 스킵하는 부분도 있으니, 직접 보시는 걸 추천드립니다.

 

정보 단위

비트: 0과 1을 표현하는 가장 작은 정보 단위 

n비트로 2^n의 정보 표현 가능

 

보통 비트보다 더 큰 단위를 사용한다.

 

1000 바이트=1킬로바이트(kB)

요즘에는 1024개씩 묶으면 kiB로 구분해서 쓰는 추세이다.

(옛날에 배울 떄는 무조건 1024였는데..)

 

워드

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

하프, 풀, 더블이 있다.

 

이진법으로 음수를 표현하는 법

0과 1로 음수 표현하기

2의 보수법을 쓴다.

 

원래 정의 : 어떤 수를 그보다 큰 2^n에서 뺀 값

혹은, 모든 0과 1을 뒤집고 1을 더한 값

 

구분의 경우에는 CPU에서 플래그로 구분한다.

 

십육진법을 쓰는 이유

십육진법은 이진법으로 바꾸기 쉽다.

 

십육진법의 각 항목을 이진법으로 바꾸고 결합하면 끝.

마찬가지로 이진법도 4개씩 구분해서 십육진법으로 바꿔주면 된다.

 

십육진법을 코드에 직접 써넣는 사례도 많다.

 

 

0과 1로 문자를 표현하는 방법

문자 집합(character set) - 컴퓨터가 이해할 수 있는 문자의 모음

인코딩 (encoding) - 0과 1로 변환하는 과정(원-핫 인코딩으로 익숙하다)

디코딩 (decoding) - 0과 1로 이루어진 코드를 해석하는 과정

 

아스키 코드(ASCII)

초창기 문자 집합 중 하나

7비트로 하나의 문자 표현 - 8비트 중 1비트는 오류 검출을 위해 사용되는 패리티 비트(parity bit)다.

2^7=128이므로 0~127개의 문자 표현 가능

 

A는 65~a는 97

알파벳은 26개이다.

 

아스키코드의 문제 

한글은 불가.

128개보다 많은 문자 표현 불가

8비트도 여전히 부족

 

한글 인코딩 : 완성형 vs 조합형 인코딩

 

한글을 위한 인코딩이 따로 필요하다.

완성형은 단어 하나 하나에 코드를 부여

조합형은 자음과 모음에 코드를 부여

 

EUC-KR : 완성형 인코딩. 글자 하나 하나에 2바이트 크기의  코드 부여

2바이트 == 16비트 == 4자리 16진수로 표현

 

b0c5 = 거, b0c1 = 가 이런 식

2300여개의 한글 표현 가능

꿹깛 이런 건 표현 불가능

 

언어별 인코딩을 하게 되면 다국어를 지원하는 프로그램을 개발 할 때는 문제가 생긴다.

 

그래서 생긴 게 유니코드 utf-8

 

유니코드

통일된 문자 집합

한글, 영어, 화살표 등등

유니코드 인코딩 방식 - uft-8,utf-16,utf-32 등

 

16진수를 고유한 값이 있다(코드 포인트)

코드 포인트를 컴퓨터가 어떻게 0과 1로 변환하는지에 따라서 다르게 인식한다.

 

utf-8

가변 길이 인코딩 결과가 1바이트~4바이트

 

첫 코드 포인트가 결정되고, 마지막 코드 포인트의 범위가 다르면 가변하여 1바이트~4바이트를 결정한다.

 

0000 / 007F - 1바이트

0000 / FFFF - 3바이트

 

글자가 깨지는 경우 - 유니코드에 빠지지 않았는지, 인코딩이 잘 안되었는지 의심할 수 있다.

반응형