컴퓨터 사이언스/컴퓨터 구조 & 운영체제

[혼공컴운] 컴퓨터 구조 chapter 2

공대핫산 2024. 1. 6. 03:24

1 . 0과 1로 숫자를 표현하는 방법 - 이진법!

컴퓨터는 0과 1만 이해할 수 있다.

그렇다면 3과 4을 어찌 표현하고 3+4 = 7 이라는 연산을 할 수 있을까?

 

1 . 정보단위

비트 : 0과 1을 나타내는 가장 작은 정보단위
n비트 = 2^n 가지 정보 표현 가능 

단위

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

 

※ 추가적인 정보단위 : 워드
워드는 CPU가 한번에 처리할 수 있는 데이터 크기를 의미합니다.
만약 CPU가 한번에 16비트를 처리 할 수 있다면 1워드 = 16비트
32비트를 처리할 수 있다면 1워드 = 32비트 가 됩니다.

이렇게 처리된 워드의 절반을 하프 워드라 부르며 , 1배 크기는 풀워드 , 2배 크기는 더블 워드라 부릅니다.

현대의 컴퓨터 대부분은 32비트 또는 64비트이므로 1워드  = 32 or 64비트가 되겠습니다.

 

2 . 이진법

십진법 : 일상적으로 사용하는 숫자를 표현하는 방법

이진법 : 수학에서 모든 숫자를 0과 1만으로 표현하는 방법

십진수 : 우리가 사용하는 숫자    1,2,3, .... 10
이진수: 이진법으로 표현한 수
예 : 2 = 0010(2) or 0b0010   [ 아래첨자 (2)를 붙이거나 앞에 0b를 붙여 표현함 ]


이진수의 음수 표현 ( 2의 보수)
간단 표현 : 모든 비트의 0과 1을 뒤집고 (1의 보수)

                 거기에 1을 더함 (2의 보수)
예시 :  1011 ->  0100 (1의 보수)

           0100 -> 0101 (2의 보수) 


양수와 음수를 구분하기 위해 2의 보수로 표현한 수는 "플래그(plag)"로 구분한다.

 

※2의 보수의 한계 - n비트로는 -2^n 과 2^n이라는 수를 동시에 표현할 수 없음

 

 

3 . 십육진법

십육진법(hexadecimal): 15를 넘어가는 시점에 자리 올리는 숫자 표현법 . 0~9, A~F까지 사용.
비트당 16가지 수 표현 가능 

표기법 : 15(16) or ox15 [ 아래첨자로 (16)을 붙이거나 앞에 0x를 붙임]

십육진수 이진수 변환
십육진수 ->이진수 : 십육진수 한 자리수 당 이진수 4비트로 변환

1 A 2 B 1A2B
0001 1010 0010 1011 0001101000101011

 

이진수 -> 십육진수: 이진수 4비트씩 끊어 십육진수 한 자리씩 변환

1101 0101 11010101
D 5 D5

 

---> 하드웨어와 밀접한 개발분야의 경우 이진수를 직접 사용하는 경우가 있음

 

2 . 0과 1로 문자를 표현하는 방법

컴퓨터는 어떻게 0과 1로만 문자를 출력해내는 것 일까?

1 . 문자 집합과 인코딩

문자 집합: 컴퓨터가 인식하고 표현할 수 있는 문자의 모음
문자 인코딩: 문자를 이진수로 변환하는 과정
문자 디코딩: 이진수를 문자로 변환하는 과정


 

2 . 아스키코드

아스키 코드(ASCII): 2의 7제곱(128) 가지 문자 표현 가능 
8비트를 사용하나 7비트 문자집합임 1비트는 패리티 비트로 오류 검출을 위한 비트
※ 한글 표기 불가능 문자 집합 , 8비트의 확장 아스키가 있으나 256가지 문자 표현이라 부족

 

3 . EUC-KR

한글을 표현하는 인코딩 방법
완성형 인코딩: 완성된 하나의 글자에 고유한 코드 부여하는 인코딩 방식
조합형 인코딩: 초성, 중성, 종성 각 비트열 할당하여 하나의 코드를 만드는 인코딩 방식

EUC-KR : EUC의 일종이며 대표적인 한글 완성형 인코딩 (8비트 문자 집합)
하지만 모든 한글 표현이 불가능함 (모든 한글 조합을 표현 할 수 없기 때문에)

4 . 유니코드와 UFT-8

유니코드와 UFT-8
- 유니코드: 국제 표준 문자 집합 ( 여러 언어 표현 가능)
-  UFT-8(Unicode Transformation Format - 8bit):  가장 대중적인 인코딩 방식