[CS]

컴퓨터 구조 ch.2 데이터

지기음 2022. 12. 28. 14:33

컴퓨터는 0과 1로만 표현된 정보만을 이해 

컴퓨터가 이해하는 가장 작은 정보단위 : 비트 (bit) ---> 0과 1로 표현

 

2비트로 표현할 수 있는 정보 ->2^2

3비트로 표현할 수 있는 정보 ->2^3

 

바이트(byte) = 8비트 

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

1메가바이트 (MB) = 1000킬로바이트

1기가바이트 (GB) = 1000메가바이트

1테라바이트 (TB) =  1000기가바이트 

 

★word -> CPU가 한 번에 처리할 수 있는 데이터의 크기 (하프워드 , 풀 워드 , 더블 워드)

대부분 32비트 or 64비트 

 

이진법 

이진수로 표현된 수 앞에 0b or 뒤에 (2) 

 

이진수의 음수 표현 -> 2의 보수 

1의 보수 + 1 = 2의 보수 

2의 보수 단점 :

1. 실제 이진수만 봐서는 음수인지 양수인지 확인이 어려움 ->해결책 : flag 사용 

2. -2^n과 2^n이라는 수의 동시표현 불가능 

 

십육진법 

십육진수롤 표현된 숭 앞에 0X or 뒤에(16)

십육진수를 쓰는 이유 : 2진수로의 변환이 자유로움 (2진수 네글자를 모으면 16진수가 됨)

 

문자를 표현하는 방법 

문자집합 : 문자의 모음 

문자인코딩 : 사람이 나타낸 문자 -> 0과 1로의 표현

문자디코딩 : 문자인코딩의 반대 

완성형인코딩 : 초성+중성+종성 ---> ex) 가=1 나 =1 닫 =31

조합형인코딩 : 초성을 위한 비트 + 중성을 위한 비트 + 종성을 위한 비트 --->ex) 가= ㄱ+ㅏ = 0010+0011

 

아스키코드 (ASCII) 

7비트 128개의 문자 ( 8비트중 1비트는 패리티 비트) 

 

단점

1. 한글을 표현할 수 없음 

2. 특수문자 표현할 수 없음 

해결하기 위해 확장아스키코드 나왔지만 역부족 

 

EUC-KR

완성형인코딩 방식 

한글 한 글자에 2바이트 코드 부여 -> 16비트 필요 

총 2350개 정도의 한글 단어 표현 가능 

 

단점 

1. 모든 한글 조합을 표현할 수 없음 

2. 따라서 은행 관공서에서 표현할 수 없는 한글글자로 인해 피해 

CP949등장했지만 넉넉하지는 않음 

 

유니코드(UNICODE)

EUC-KR보다 훨씬 많은 문자 표현 가능 

https://unicode-table.com/kr/

 

유니 코드 문자 백과 사전

유니 코드 문자 검색 웹 서비스. 즐겨 찾는 문자를 찾아서 복사하십시오 : 😎 에모지, ️ 화살표, ✪ 별, 💲 통화, 🈂️ 글쓰기 시스템 및 기타 🚩

unicode-table.com

각 문자맏자 고유한 값이 부여 

ex) 한 = D55C 글 = AE00

 

UTF-8 (유니코드 변환 방식 ) 

1~4바이트까지의 인코딩 결과

유니코드 표를 통해 1~4바이트 예상할 수 있음 

아스키코드는 대부분 1바이트에 배정 , 4바이트는 잘 안쓰는 문자열 

(자바는 UTF-16방식을 사용)

 

 

후기 :평소 아무 생각없이 사용하던 UTF-8 , 아스키코드를 알고 쓸 수 있겠다.

자바는 왜 UTF-16방식을 선정했는지 고민이 필요하다.