|
① 수의 체계와 진법
우리의 일상생활은 1~10까지 10개의 수를 사용하고 10이상의 수는 거듭제곱에 의하여 수를 표시하나, 디지털 컴퓨터는 2진 신호인 0과 1을 사용하여 모든 정보를 저장하고 처리함 →컴퓨터는 10진수를 입력하여 2진수로 변환한 후 연산을 수행하고 다시 10진수로 변환하여 출력함
(1) 10진법(decimal number system)
10진법은 0부터 9까지 10개의 숫자를 사용하여 모든 수를 표현하고 있으며, 10진법을 사용하여 표현한 수를 10진수라고 한다.
수의 기본 차이는 밑수(base)에 있으며, 밑수는 어떤 양을 표현하기 위해 진법에서 사용하는 숫자의 전체 개수로서, 10진법의 밑수는 10이다.
|
▶ 예제
10진수인 365를 밑수로 표시하면 다음과 같다.
365 = 3×100 + 6×10 + 5×1
= 3 ×102 + 6 ×101 + 5 ×100
= 300 + 60 + 5
즉, 365는 100 이 3개, 10 이 6개, 1 이 5개인 수를 합한 수치이다. |
(2) 2진법
0과 1의 2개의 숫자를 사용하여 수를 표현하는 것이며, 2진법을 사용하여 나타낸 수를 2진수라고 한다.
|
▶ 예제
2진수인 1010을 10진수와 비교하면 다음과 같다.
(1010)2 = 1×23 + 0×22 + 1×21 + 0×20
= 1×8 + 0×4 + 1×2 + 0×1
= (10)10
즉, 2진수의 1010은 10진수의 10 이 된다. |
( 3 ) 8진법과 16진법
① 8진법 (octal number system) : 0부터 7까지 8개의 숫자를 사용하여 수를 표현하는 것으로 8진법을 사용하여 표현한 수를 8진수라고 한다.
② 16진법 (hexadecimal number system) : 0부터 15까지 16개의 숫자를 사용하여 수를 표현하는 것으로, 16진법을 사용하여 표현한 수를 16진수라고 한다.
16진수는 16개의 숫자 중에서 10개는 10진수의 0부터 9를 그대로 사용하고, 나머지 6개인 10부터 15까지는 다른 진법의 수와 혼동을 피하기 위하여 10은 A, 11은 B, 12는 C, 13은 D, 14는 E, 15는 F로 각각 표현
[표2-1] 각 진법 사이의 관계
|
10진법 |
2진법 |
8진법 |
16진법 |
10진법 |
2진법 |
8진법 |
16진법 |
|
0 |
0000 |
00 |
0 |
10 |
1010 |
12 |
A |
|
1 |
0001 |
01 |
1 |
11 |
1011 |
13 |
B |
|
2 |
0010 |
01 |
2 |
12 |
1100 |
14 |
C |
|
3 |
0011 |
03 |
3 |
13 |
1101 |
15 |
D |
|
4 |
0100 |
04 |
4 |
14 |
1110 |
16 |
E |
|
5 |
0101 |
05 |
5 |
15 |
1111 |
17 |
F |
|
6 |
0110 |
06 |
6 |
16 |
10000 |
20 |
10 |
|
7 |
0111 |
07 |
7 |
17 |
10001 |
21 |
11 |
|
8 |
1000 |
10 |
8 |
18 |
10010 |
22 |
12 |
|
9 |
1001 |
11 |
9 |
19 |
10011 |
23 |
13 |
( 1 ) 2 진수, 8 진수, 16 진수에서 10 진수로 변환
|
▶ 예제
2 진수인 10101과 16 진수인 A6F3을 10 진수로 변환하면 다음과 같다.
(10101)2 = 1 × 24 + 0 × 23 + 1 × 22 + 0 × 21 + 1 × 20
= 16 + 4 + 1
= (21)10
(A6F3)16 = 10 ×163 + 6 ×162 + 15 ×161 + 3 ×160
= 10 × 4096 + 6 × 256 + 15 × 16 + 3 ×1
= 40960 + 1536 + 240 + 3
= (42739)10
16 진법에서 8→8 9→9 10 →A 11→B 12→C 13 → D 14→ E 15 → F 16→10 17→11
|
2 진수, 8 진수, 16 진수로 표현된 수를 10 진수로 변환할 때에는 변환하는 수의 밑수와 각 자리에 해당하는 가중치를 곱하여 이들을 더하면 된다. 이때, 2 진수의 밑수는 2, 8 진수의 밑수는 8, 16 진수의 밑수는 16 이 된다.
( 2 ) 10진수에서 2진수, 8진수, 16진수로 변환
(가) 정수 부문의 변환 방법
10 진수의 정수를 변환하는 진수의 밑수로 나누어질 때까지 계속 나눈 다음에 각각의 나머지를 역순으로 정리하면 된다.
|
▶ 예제
10 진수의 26을 2 진수로, 353을 16 진수로 변환하면 다음과 같다
|
(26)10 = (11010)2
 |
(353)10 = (161)16

|
|
(나) 소수 부분의 변환 방법 10 진수의 소수 부분을 변환하고자 하는 진수의 밑수로 0 이 될 때까지 계속 곱하여 자리 올림수가 발생되는 순서대로 표시 하면 된다. 이 때, 진수의 밑수로 계속 곱하여도 나머지가 0 이 안 되는 경우에는 몇 번의 곱셈을 수행하여 근사값을 구하면 된다.
▶ 예제 10 진수의 0.625를 2 진수와 16 진수로 각각 변환하면 다음과 같다.
|
1) (0.625)10 = (0.101)2
|
자리올림수 소수
0.625 × 2 = 1. 250 0.250 × 2 = 0. 500
0.500 × 2 = 1. 000 |
|
2) (0.625)10 = (0.A)16 = (0.10)16 |
0.625 X 16 =10.000 |
( 3 ) 2 진수에서 8 진수, 16 진수로 변환
|
▶ 예제
01101100.001101인 2 진수를 8 진수와 16 진수로 각각 변환하면 다음과 같다.
(01101100 . 001101)2 = (154 . 15)8
(01101100 . 001101)2 = (6C . 34)16
2 진수 : 001 101 100 . 001 101 2 진수 : 0110 1100 . 0011 0100
8 진수 : 154 . 15 16 진수 : 6C . 34 |
2 진수의 세 자리는 8 진수의 한 자리로, 2 진수의 네 자리는 16 진수의 한 자리로 대응.
(가) 2진수에서 8진수로 변환
소수점을 중심으로 왼쪽과 오른쪽으로 각각 세 자리씩 묶어서 각 묶음에 대응되는 8 진수의 한 자리로 표시.
(나) 2진수에서 16진수로 변환
소수점을 중심으로 왼쪽과 오른쪽으로 각각 네 자리씩 묶어서 각 묶음에 대응되는 16 진수의 한 자리로 표시.
( 4 ) 8진수, 16진수에서 2진수로 변환
|
▶ 예제
6B9 . CA인 16 진수를 2 진수로 변환하면 다음과 같다.
(6B9 . CA)16 = (011010111001.11001010)2
16 진수 : 6 B 9 . C A
2 진수 : 0110 1011 1001 . 1100 1010 |
8 진수의 한 자리는 2진수의 세 자리로, 16진수의 한 자리는 2진수의 네 자리로 표시.
(가) 8진수의 2진수 변환 : 소수점을 중심으로 8진수의 한 자리를 2진수의 세 자리로 표시
(나) 16진수의 2진수 변환 : 소수점을 중심으로 16진수의 한 자리를 2진수의 네 자리로 표시
------ 마무리 하기 ------
1. 다음에 표시된 수에 대한 진수 변환을 수행하여 보자.
(1) 10 진수의 232 . 25를 2 진수, 8 진수, 16 진수로 변환하여 보자
(232 . 25)10 → (11101000 . 01)2 → (350 . 2)8 → (E8 . 4)16
(2) 2 진수의 11011.11을 10 진수로 변환하여 보자
(27 . 75)10 →
(3) 2 진수의 101101101010.01을 8 진수와 16 진수로 변환해 보자
(5552 . 2)8 →
(B6A . 8)16 →
② 2진수 연산 <P.28>
표 Ⅱ2-2 2진수의 덧셈 규칙
|
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 1 0 (1은 자리올림(carry)임 |
모든 자리의 합의 결과가 0 이거나 1 이 된다. |
예제
|
2 진수의 덧셈 규칙에 따라 1101과 0110 을 더하면 다음과 같다.
1 1 0 1 + 0 1 1 0 = 1 0 0 1 1 |
1 1 0 1
+ 0 1 1 0
1 0 0 1 1 |
표 Ⅱ2-2 2진수의 덧셈규칙
|
0 - 0 = 0
0 - 1 = 1 ( 윗 자리에서 빌림 )
1 - 0 = 1
1 - 1 = 0 |
모든 자리의 뺄셈의 결과 는 0 이거나 1이 된다.
0 에서 1을 뺄 수 없기 때문에 윗 자리에서 빌림(borrow)이 발생한다.
|
대부분의 컴퓨터는 뺄셈을 2 진수의 뺄셈 규칙 대로 수행하지 않고, 보수를 사용하여 보수에 의한 뺄셈으로 처리하는 방법을사용한다
- 예제 -
1 1 0 1 0 을 1 의 보수와 2 의 보수로 변환하면 다음과 같다.
|
( 1 1 0 1 0 )2 |
1 의 보수 : 0 0 1 0 1 ( 0 은 1 로 , 1 은 0 으로 변환 )
2 의 보수 : 0 0 1 1 0 ( 1 의 보수에 1을 더함 ) |
1 의 보수 1 1 0 1 0 → 0 0 1 0 1
2 의 보수 0 0 1 0 1
+ 1
0 0 1 1 0 |
( 2 ) 2의 보수에 의한 뺄셈
(가) 감수의 2의 보수에 피감수를 더한다.
(나) 위의 연산 결과에서 맨 윗자리에 자리올림수가 있는지 조사한다.
ㄱ) 자리올림수가 있으면 버린다.
|
진법의 이해
- 우리 생활에서 일반적으로 사용하고 있는 것은 10진법 이다.
- 컴퓨터에 사용되는 데이터는 2진법에 의해 표현된다.
- 2진법으로 모든 데이터를 표 현할 경우 그 길이가 너무 길 어져서 사용하기 불편하으로 8진법이나 16진법을 사용 한다
( 8, 16은 2의 3승과 2의 4승 이다 )
|