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 |