본문 바로가기
CS/컴퓨터 구조&운영체제

[컴퓨터 구조 & 운영체제]2. 데이터

by supernovaMK 2024. 4. 23.

정보 단위

 

1비트 - 0과 1 

1 바이트=8비트

1 킬로 바이트=1000바이트

1 메가 바이트=1000 킬로 바이트

1 테라 바이트= 1000 메가 바이트

워드=  CPU가 한번에 처리할 수 있는 양, 보통 1워드는 32비트 이거나 64 비트이다.

 


 

이진수

1부터 시작해서 계속해서 1을 더해주는 방식으로 쌓는다.

1,10,11,100,101,110,111,1000.....등

 

음수를 표현하고 싶다면,2의 보수를 사용하여 나타낸다. 사용하는 방식은 수를 뒤집은 후에 1을 더해주는 방식이다.

EX) 11(2)의 음수는 00 + 1 ----> 01이 되는 것이다 .

 

여기서 보수를 적용하여 음수를 만들었을 때 음수 01과 양수 01 간의 구분을 하기 어렵다.

따라서 컴퓨터 내부에서 플래그를 사용하여 이를 해결한다.

 


십육진법

이진수로 표현하기 너무 큰 수들의 표현을 위해 십육진법도 함께 쓰인다. 

0 , 1 , 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E,  F, 10(자리 올림) , 11,......

 

16을 기준으로 자리 올림이 생긴다.

 

표기 할 때 (16)을 뒤에 붙히거나 앞에 0x에 붙혀 나타낸다.

 

 

앞서 말한 이진수와 십육진법은 서로 변환이 유연하여 둘을 프로그래밍에서 많이 사용한다.

 

 

부동 소수

 

부동 소수에 관해서는 이후에 추가적으로 다루겠다.


문자 집합 과 인코딩

문자 집합: 컴퓨터가 인식하고 표현할 수 있는 문자의 모음

문자 인코딩: 문자 집합에 속한 문자를 0과 1 로 변환하는 과정 

문자 디코딩: 0과 1로 이루어진 문자 집합을 사람이 이해할 수 있는 문자로 변환하는 과정

 


아스키 코드

 

아스키 문자 집합에 속한 문자들은 7비트로 표현되며 2^7개의 문자를 표현할 수 있다. 사실상 8비트를 사용하지만 1비트는 오류 검출을 위해 사용 되는 비트이기 때문에 7비트로 표현된다고 본다.

 


EUC-KR

 

앞서 말했듯이 아스키 코드의 범위는 128개의 문자를 표현 가능하기에 알파벳 이외의 나라들의 언어를 표현하는데 한계가 있다. 이를 해결하기 위해 각 나라별 인코딩 방식이 있는다, 한국에는 한글 인코딩 방식이 있다. 이는 완성형 인코딩조합형 인코딩으로 나뉜다.


 

유니코드와 UTF-8

 

한글의 인코딩 방식 이외에 다른 나라 언어를 추가할 때 모든 언어들의 인코딩 방식을 알아야하는 번거로움이 있다. 이를 해결하기 위해 다른 나라 언어들의 인코딩 방식을 통합한 유니코드 문자 집합이 있다.

 

또한 이 유니코드를 사용하여 UTF-8 방식으로 인코딩하여 이를 컴퓨터가 사용하여 이해하고 활용할 수 있다.