정보단위
비트
컴퓨터가 표현,이해하는 가장 작은 정보단위 - 비트
0 과 1 두가지.
1비트로는 두가지 정보를 표현할 수 있다.
1 바이트 = 8 비트
1 킬로바이트 = 1000 바이트
1 메가바이트 = 1000 킬로바이트
1 기가바이트 = 1000 메가바이트
1 테라바이트 = 1000 기가바이트
워드
CPU가 한 번에 처리할 수 있는 데이터 크기.
요즘 대부분의 컴퓨터는 32비트 또는 64비트
숫자를 표현하는 방법
이진법
0과 1만으로 모든 숫자를 표현하는 방법
이진수 : 이진법으로 표현한 수
이진수의 음수 표현
2의 보수
가장 보편화된 방법
어떤 수를 그보다 큰 2^n에서 뺀 값
쉽게 표현하는 방법 : 모든 0과 1을 뒤집고(1의 보수), 거기에 1을 더한 값.
플래그 : 양수인지 음수인지 구분하기 위해 사용하는 정보
십진법
우리가 보통 숫자를 세는 방법 ( 0~9 까지 )
십진수 : 십진법으로 표현한 수
십육진법
0~9, A(10), B(11), C(12), D(13), E(14), F(15) 로 표현함.
한 글자로 열여섯종류의 정보를 표현할 수 있으니,
이진수에 비해 더 적은 자릿수로 더 많은 정보 표현 가능.
십육진수를 이진수로 변환
십육진수 각 자리의 숫자를 4자리(비트)의 2진수로 표현
이진수를 십육진수로 변환
4자리(비트)씩 끊어서 16진수로 표현
문자집합
컴퓨터가 인식하고 표현할 수 있는 문자의 모음.
문자집합에 속해 있지 않은 문자는 이해할 수 없음.
문자집합에 속해있다고 하더라도, 컴퓨터가 그대로 이해할 수 있는게 아님.
-> 0과 1로 변환해야 이해 가능
-> 이 변환 과정을 '문자 인코딩' 이라고 함.
-> 문자 코드 : 문자 인코딩 후 0과 1로 이루어진 결과값
+) 같은 문자 집합에 대해 다양한 인코딩 방법이 있을 수 있음.
+) '문자 디코딩' : 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정
아스키코드
아스키
초창기 문자 집합 중 하나.
영어 알파벳, 아라비아 숫자, 일부 특수 문자 포함
0부터 127까지, 총 128개의 숫자 중 하나의 고유한 수에 일대일로 대응됨.
아스키코드 : 아스키 문자에 대응된 고유한 수
+) 코드 포인트 : 글자에 부여된 고유한 값
ex) A의 코드 포인트 : 65 , a의 코드 포인트 : 97
확장 아스키 : 기존 아스키코드는 8비트 ( 문자 표현부 : 7비트 - 128개 , 오류검출에 사용되는 비트(패리티 비트) - 1비트 )로 구성되어있었는데, 문자 표현부를 1비트 늘린, 8비트(256개)를 사용하는 아스키코드.
-> 그래도 턱없이 부족함.
한글 인코딩 방식
완성형
한글 완성형 인코딩
초성, 중성, 종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드를 부여하는 인코딩 방식
조합형
한글 조합형 인코딩
초성을 위한 비트열, 중성을 위한 비트열, 종성을 위한 비트열을 할당하여 그것들의 조합으로 하나의 글자 코드를 완성하는 인코딩 방식
EUC-KR
대표적인 완성형 인코딩 방식
초중종성이 모두 결합된 한글 단어에 2바이트 크기의 코드를 부여함.
2350개 정도의 한글 단어를 표현할 수는 있으나, 모든 한글을 표현할 수는 없기에, CP949가 등장함
EUC-KR의 확장 버전인데, 이마저도 한글 전체를 표현하기에 넉넉한 양은 아님.
유니코드
EUC-KR보다 훨씬 다양한 한글을 포함
여러 나라의 문자를 광범위하게 표현할 수 있는 통일된 문자 집합.
대부분 나라의 문자, 특수문자, 화살표, 이모티콘까지도 코드로 표현할 수 있는 통일된 문자 집합.
아스키코드나 EUC-KR와는 달리, 글자에 부여된 값을 그대로 인코딩 값으로 삼지 않고,
이 값을 다양한 방법으로 인코딩함.
인코딩 방법 종류 : UTF-8(가장 대중적), UTF-16, UTF-32 등
'컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] 왜 컴퓨터구조를 알아야하는가? & 큰 구조 (0) | 2024.08.30 |
---|