본문 바로가기

컴퓨터 구조

CH.2 데이터

2-1 0과 1로 숫자를 표현하기

정보 단위

0과 1을 나타내기 위해 비트(bit)라는 가장 작은 정보 단위를 사용한다.

1바이트(byte) 8비트(bit)
1킬로바이트(kB) 1,000바이트(byte)
1메가바이트(MB) 1,000킬로바이트(kB)
1기가바이트(GB) 1,000메가바이트(1,000MB)
1테라바이트(TB) 1,000기가바이트(1,000GB)

 

워드 : CPU가 한번에 처리할 수 있는 데이터의 크기.

보통 컴퓨터의 워드 크기는 32비트나 64비트이다.

 

이진법

1을 넘어가는 시점에 자리올림을 하여 0과 1 두가지만으로 숫자를 표현하기 위해 사용하는 방법

 

이진법을 사용한 이진수임을 표현하기 위해 8이라면 0b1000과 같이 이진수 앞에 0b를 붙인다

 

이진수의 음수 표현 : 2의 보수

0과 1만으로 구성된 수에서 음수를 어떻게 표현할까?

 

2의 보수로 표현하기 위해서는 1의 보수로 바꾸고 +1을 해주면 된다.

1의 보수 표현법 : 모든 이진수를 뒤집기

 

예를 들어 1011의 음수를 0101로 표현할 수 있다.

1011 -> 0100(1의보수) -> 0101(+1)

 

하지만 이 경우 십진수 5를 표현한 것인지 십진수 -11을 표현한 것인지 알 수가 없다.

 

이를 구분하기 위해서 플래그를 사용한다.

플래그라는 정보를 통해 음수인지 양수인지 파악할 수 있도록 하는 것이다.

 

주의
0이나 2의 N제곱을 2의 보수로 표현하면 오류가 발생한다.
0000 -> 10000, 1000(2의 3제곱) -> 1000
첫번째 경우 맨 앞 1을 버리지만 두번째 경우는 본질적으로 해결이 힘듦

 

십육진법

하나의 비트에 16가지 종류(0~9, A~F)의 정보를 담을 수 있는 숫자표현법

십육진법을 사용한 십육진수를 표현하기 위해 9라면 ox9와 같이 표현할 수 있다.

 

십육진수를 이진수로

각 비트를 네자리의 이진수로 만들어 이어붙인다.

 

이진수를 십육진수로

4개씩 끊어서 십육진수로 만들어 이어붙인다.

 

 

2-2  0과 1로 문자를 표현하기

컴퓨터는 0과 1만 이해할 수 있다고 했는데 입력한 문자를 어떻게 이해하고 출력하는 것인가?

 

문자집합 컴퓨터가 인식하고 표현할 수 있는 문자의 모음
인코딩 컴퓨터가 이해할 수 있도록 문자집합에 속한 문자를 0과 1로 변환하는 과정
디코딩 0과 1로 이루어진 문자코드를 문자로 변환하는 과정

 

 

아스키코드

 

아스키문자 집합은 7비트로 표현되어 총 128개의 문자를 표현할 수 있다.

but,실제로는 1바이트를 사용하는데 1비트는 패리티 비트라고 하여 오류 검출을 위해 사용한다.

 

패리티 비트란?

정보 전달 과정에서 오류가 생겼는 지 검사하기 위해 추가하는 비트를 말한다.

맨 마지막에 추가되는 비트로 종류로는 짝수 패리티홀수 패리티가 있다.

짝수 패리티는 1의 개수가 짝수가 되도록 하는 비트이고

홀수 패리티는 1의 개수가 홀수가 되도록 하는 비트이다.

이렇게 1의 개수에 따라 오류여부를 파악할 수 있도록 해준다.

 

이 아스키코드는 매우 간단하게 인코딩 할 수 있지만 이외의 문자는 표현할 수 없다.

 

그래서 등장한 방식이 EUC-KR방식이다.

완성형 인코딩 방식으로 2바이트 크기의 코드를 부여한다.

 

하지만 이렇게 수많은 나라의 인코딩 방식을 모두 알기는 쉽지 않아 

표준 문자집합으로 유니코드 문자집합을 통해 여러나라의 문자를 광범위하게 표현할 수 있도록 하였다.

유니코드 문자에 부여된 값을 인코딩하기 위해 보통 UTF-8을 사용한다.

 

이 UTF-8은 보통 1바이트부터 4바이트까지의 인코딩 결과를 만들어낸다.

'컴퓨터 구조' 카테고리의 다른 글

CH 5 CPU 성능 향상 기법  (0) 2024.03.31
CH4 명령어 사이클과 인터럽트  (0) 2024.03.21
CH.4 CPU의 작동원리  (0) 2024.03.21
CH3. 명령어 고급언어와 저급언어  (0) 2024.03.17
CH.1 컴퓨터 구조 시작하기  (0) 2024.03.11