'디지털 논리 회로/논리회로'에 해당되는 글 1건

  1. 2020.12.21 EP.1 수의 체계

우리가 흔히 일상에서 쓰는 숫자들은 10진수이다.

이를 0과 1만 사용하여 2진수로도 나타낼 수 있고

0~8까지만 사용하여 8진수, 0~16까지만 사용하여 16진수로도 나타낼 수 있다.

 

1) 일의 자리부터 2^0 십의 자리는 2^1로 생각해서 더해주면 된다.

ex) 0 (2) = 0 , 10(2) = 2+0 = 2,  11(2) = 2+1 = 3,   101(2) = 4+0+1 = 5 

(2)는 이진수를 나타낸다.

 

이와 마찬가지로 16진수는 0~15까지를 사용하여 나타낸다. 이때 10부터는 A로 나타낸다.

10 A
11 B
12 C
13 D
14 E
15 F

ex) 4AF(16) = 16^2X4 + 16^1X10 +16^0X15 = 1199 

 

 

2) 그렇다면 이러한 2진수의 덧셈은 어떻게 할까?

 

10진수의 덧셈에서는 10을 넘기면 다음 자리에 1을 더해주었다. 이와 마찬가지로 2진수의 덧셈에서도 1과 1을 더할 때 다음 자리에 1을 더해준다.

 

EX) 10진수                                   EX) 2진수

     1 1                                                  1  1
   3 7 3 4                                             1 0 1 1
+ 5 1 6 8                                           +0 0 1 1 
---------------                                    --------------
   8 9 0 2                                             1 1 1 0

 

3) 2진수로 부호를 나타낼 수 있을까?

정답은 나타낼 수 있다. 하지만 방법이 조금 다르다.

 

방법으로는 두가지가 있는데 첫 번째는 부호 및 크기의 2진수 표기법이다.

 

예를 들어 숫자 6을 2진수로 표현하면  110(2)이다.  ( 4+2+0 = 6 )

이때 앞에 한자리를 더해 +/- 를 나타낸다.

 

+6 : 0110

-6  : 1110

 

으로 나타낼 수 있다.

하지만 이렇게 나타내면 덧셈시 계산 결과의 오류가 날 수 있고, 0을 표시하려 할 때 1000과 0000의 두 가지 방법이 생기는 문제점이 있다.

 

그러므로 두번째 방법은 2의 보수를 사용하여 부호를 나타내는 것이다.

 

이 방법은 최상위 비트의 값이 2^(N-1) 대신 -2^(N-1)이라는 것을 제외하면 부호 없는 2진수와 똑같다.

 

먼저 구한 2진수를 반전시킨다음 1을 더하면 된다.

 

예를 들어 숫자 -2를 나타내려면

먼저 2(10) = 0010(2) 

이다. 그러므로 0010을 반전시키면 1101(2) 이 되고 여기에 1을 더해주면

  1110(2) 이 된다. 이것이 -2(10)을 이진수로 표현한 것이 된다.

 

여기서 주의해야 할 점은 덧셈을 할 때 N번째 비트에서 발생한 N+1 번째 비트는 버려야 한다!!

 

 

 

 

 

 

 

 

 

 

 

 

 

Posted by 이지원
,