전공과목 정리/IT개론

[IT개론] 데이터 표현과 디지털 논리

최연재 2022. 2. 2. 05:50

내용 출처  : 소프트웨어 세상을 여는 컴퓨터과학

 

1. 수의 체계와 변환

1) 수의 체계

(1) 진법  : 사용할 수 있는 숫자의 개수와 각 숫자의 위치값을 정의한 수 체계

 

(2) 진법의 종류  : 10진법, 2진법, 8진법, 16진법 등

 

(3) 진법 표현 방법

- 해당 진법을 아래첨자로 표시

- ex) 0.24

(4) 자릿값

- 각 숫자의 자릿값은 그 위치가 의미하는 제곱수를 해당 진법에 적용

- ex) 1010₂ = 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0

 

 

2) 진수 변환

다른 진수 <-> 10진수

2진수 <-> 2^n진수 (n >= 2)

x진수 <-> p진수

 

(1) 다른 진수 <-> 10진수

① 8진수 -> 10진수

8진수 27.42 => 10진수 23.53125

방법 : 2*8^1 + 7*8^0 + 4*8^(-1) + 2*8^(-2) = 16 + 7 + 0.5 + 0.03125 = 23.53125

 

② 10진수 -> 2진수

소수 변환

 

(2) 2진수 <-> 2^n진수

① 2진수 -> 2^n진수

- 소수점을 기준으로 n만큼 자른 후 잘린 부분의 숫자를 바꾸고자 하는 진법의 수로 변환한다. 빈 공간은 0으로 채우면 된다. 

② 2^n진수 -> 2진수

(3) x진수 -> p진수

: x진수 -> 10진수 -> p진수 형태로 변환한다. 

 

2. 정보의 표현

1) 컴퓨터의 정보 표현 방식

(1) 컴퓨터의 정보 표현 방식

- 컴퓨터는 문자, 정수, 실수, 그림, 소리, 동영상 등의 모든 정보를 2진수 형식으로 표현한다.

 

(2) 비트 

- 하나의 0 또는 1

- 컴퓨터에서 정보를 나타내는 최소 단위

- 여덟 개의 비트를 묶으면 1바이트가 된다. 

 

2) 문자 표현

(1) 아스키 코드

- 각 문자를 7비트로 표현

- 최대로 표현할 수 있는 문자 수는 2^7개

 

(2) 확장 아스키 코드

- 각 문자를 8비트로 표현

- 총 256개의 문자를 표현 가능하다. 

 

(3) 유니코드

- 언어와 상관없이 모든 문자를 16비트로 표현

- 여러 나라의 언어를 표현하고자 만든 코드 체계

- 사용 중인 운영체제, 프로그램, 언어에 관계없이 문자마다 고유한 코드값을 제공

- 최대 2^16개의 문자를 표현할 수 있다.  

 

(4) 허프만 코딩

- 자주 사용되는 문자는 적은 수의 비트로, 자주 사용되지 않는 문자는 많은 수의 비트로 표현

문자 출현 빈도 허프만 코드 코드 길이(비트 수)
A 7 00 2
D 6 10 2
E 4 11 2
B 3 011 3
G 2 0100 4
C 1 01010 5
F 1 01011 5

- 허프만 코드의 압축률

A~ G까지 총 7개의 문자가 사용되었으므로 3비트의 고정된 비트수를 배정한다. 

 

7+6+4+3+2+1+1=24

7/24*2 + 6/24*2 + 4/24*2 + 3/24*3 + 2/24*4 + 1/24*5 +  1/24*5 = 2.54

 

허프만 코드를 사용하지 않았을 때는 모든 문자에 3비트를 배정하지만 허프만 코드를 이용하면 많이 사용되는 문자는 적은 비트를, 적게 사용되는 문자는 많은 비트를 배정한다. 

-> 3비트보다 큰 4비트와 5비트 문자가 있지만 2.54 < 3으로 평균 비트는 더 적게 사용되는 것을 알 수 있다. 

 

압축률 = (3-2.54)/3*100 = 15.3%

 

3) 정수 표현

(1) 정수 표현 방식

- 32비트로 정수를 표현

- 2의 보수 표기법

양수는 가장 왼쪽 비트를 0으로, 나머지 3개의 비트를 이용해 해당 수를 2진수로 표현한다. 

음수는 해당 음수의 절댓값을 2의 보수 표기법을 이용해 변환한 후 1은 0으로, 0은 1로 바꾼 후 1을 더한다. 

최상위 비트(부호 비트)는 양수일 때 0, 음수일 때 1이다.

n비트로 표현 가능한 수의 범위는 -2^(n-1) ~ 2^(n-1)-1 

 

(2) 정수의 덧셈과 뺄셈

 

4) 실수 표현

(1) 실수 표현 방식

- 지수 형식

: 실수를 0.7*10^(-4)과 같이 표현하는 것

지수 형식은 가수(mantissa), 밑수(radix), 지수(exponent)의 세 부분으로 이루어진다. 

m*r^e

 

- IEEE754 표준의 실수 표현 방식

단일 정밀도 형식 : 8비트 지수의 4바이트 형식

이중 정밀도 형식 : 11비트 지수의 8바이트 형식

 

(2) 실수 표현 예시

 

(3) 실수의 덧셈과 뺄셈

① 피연산자가 0인지 조사한다. 

피연산자가 0이면 A±B에서 B가 0이면 A, A가 0이며 덧셈일 경우 B, A가 0이며 뺄셈일 경우 -B가 결과가 된다. 

피연산자가 0이 아닐 경우 아래의 순서를 따른다.

② 지수가 같도록 조절한다. 

③ 가수의 덧셈, 뺄셈을 한다.

④ 결과를 정규화시킨다.

⑤ 가수의 자리를 조절한다. (생략되는 경우 있음)

5번이 생략된 경우
5번이 생략될 수 없는 경우

3. 불 대수와 디지털 논리

1) 불 대수 연산

(1) OR연산 ≒ 합집합

연산 결과 두 개의 값 중 하나라도 1이면 1이 되고, 두 개의 값 모두가 0이면 0이 된다. 

(2) AND연산  ≒ 교집합

연산 결과 두 개의 값 모두 1이면 1이 되고, 하나라도 0이 있으면 0이 된다. 

(3) NOT 연산

연산 결과로 0은 1이 되고, 1은 0이 된다. 

 

2) 불 대수 법칙

- A,B,C가 0 또는 1의 값을 가지는 변수라고 할 때 불 대수와 관련된 법칙

- 교환법칙, 결합법칙, 분배법칙, 드모르간의 법칙이 있다. 

ex) 

교환법칙 : A+B = B+A , A·B = B·A

결합법칙 : (A+B)+C = A+(B+C) , (A·B)·C = A·(B·C)

분배법칙 : A·(B+C) = (A·B)+(A·C) , A+(B·C) = (A·B)+(A·C)

드모르간의 법칙 : (A+B)' = A'·B' , (A·B) = A' + B'

 

3) 게이트

(1) OR 게이트

- 불 대수의 OR 연산을 하는 게이트

- 두 개의 입력을 받아 둘 중 하나라도 1이면 1, 둘 다 0이면 0을 출력한다.

 

(2) AND 게이트

- 불 대수의 AND 연산을 하는 게이트

- 두 개의 입력을 받아 둘 다 1인 경우에만 1, 나머지 경우에는 0을 출력한다.  

 

(3) NOT 게이트

- 불 대수의 NOT 연산을 하는 게이트

- 한 개의 입력만 받아 1이면 0, 0이면 1을 출력한다. 

 

(4) XOR 게이트

- 두 개의 입력을 받아 입력값이 같으면 0 출력, 다르면 1을 출력한다. 

 

(5) NAND 게이트

- AND 게이트 오른쪽에 NOT 게이트를 연결한 것과 같다. 

- AND 게이트와 반대로 동작

 

'전공과목 정리 > IT개론' 카테고리의 다른 글

[IT개론] 자료구조  (2) 2022.06.21
[IT개론] 프로그래밍 언어  (0) 2022.06.21
[IT개론] 운영체제  (0) 2022.06.21
[IT개론] 컴퓨터구조  (0) 2022.02.14
[IT개론] 컴퓨터과학 도입부  (0) 2022.01.28