2. 수의 체계 - 2진수에 대한 모든 것

2022년 10월 03일 by Coco___

    2. 수의 체계 - 2진수에 대한 모든 것 목차
728x90
반응형

디지털 논리 회로의 이해 - 오창환 , 이 책을 통해 공부한 내용에 대한 기록

 

 

 

2진수의 모든 것 

 

LSB, MSB의 개념에 대해 알아보도록 하자. 

 

LSB : Least Significant Bit , 최 하위 비트

MSB : Most Significant Bit , 최 상위 비트

 

을 의미하며, 10진수를 2진수로 변환 시켰을 때의 앞자리 , 끝자리 라고 이해하면 보다 쉽게 와닿는다. 

 

 

2진수, 컴퓨터의 음수 표현

 

 컴퓨터에서는 2진수의 +,- 표현 역시 0과 1로 한다. 

여기서 부호비트는 0 : + (양수) 를 의미하고, 1이 : - (음수) 를 의미한다. 

또한 이러한 부호 비트는 최상위비트 ( 가장 왼쪽에 위치한 비트 , MSB)에 나타낸다. 

 

이를 이용하여 양수, 음수를 표현 하는 방법에는 3가지가  있다. 

 

1. 부호화-크기 표현, signed- magnitude representation 

 

 부호화 크기 표현에서는, 가장 왼쪽의 비트가 부호 비트를 의미하고, 나머지 비트가 수의 크기를 의미한다. 

즉, 부호 + 수 의 조합이라고 생각하면 된다. 

 

만약 +123을 표현하고 싶다면, 01111011 이되고, -123을 표현하고 싶다면, 11111011으로 표현할 수 있다. 

 

다만 이 경우에서는 부호 연산 비트와 크기 비트를 따로 처리해야하기 때문에 이를 계산하는 회로의 복잡도가 증가하게 된다는 단점이 존재한다. 

 


 

2. 보수 표현 

 

단점이 존재하는 부호화-크기 표현을 보완하기 위해, 보수 표현 방법이 생겼다. 

 

보수 표현에는 두가지 보수가 존재한다. 

r, r-1 의 보수이다. 

 

즉, 10의 보수에는 10과 9의 보수 2가지가 존재한다는 것이다. 

 

  2-1.   r의 보수 

 

r의 보수란 다음과 같다. 

정수부가 n 개의 숫자로 되어있으며, 기수(base)가 r인 수 N 이 있을 경우, 그 보수는 다음과 같다. 

 

N에 대한 r 의 보수 : r의 n 제곱 - N (N이 0이 아닐 때) / 0 (N이 0일때) 

 

즉, 만약 10진수 12.57에  대한 보수를 구해보자면, 

정수부 = 12 => 2개의 숫자로 되어있으므로, n=2 이고, 

기수 10 ( 10의 보수를 기준으로 구해보면)  이므로 r= 10 이다.  또한 수 N 은 그대로 12.57 을 의미한다. 

 

즉 10의 2제곱 - N  = 100 - 12.57 = 87.43 라는 사실을 우리는 쉽게 알 수 있다. 

다르게 생각해보면, 12.57에 어떤 숫자르 더해야 100이 되는가 에 대한 답이라고 생각하면 좀 더 쉽다. 

 

  2-2.   r-1의 보수 

 

r-1의 보수는 r의 보수에 비해 한자리만 차이난다. 

앞과 같이 12.57의 수를 예시로 들어 보자. 

r-1의 보수는 정수부는 n개의 숫자로 되어있고, 소수부는 m의 숫자로 구성 되어있는 수 N 을 의미한다. 

그럼 여기서 정수부는 12 이므로, 2개의 숫자로 되어있고, (n=2) , 소수부는 57 이므로, 2개의 숫자로 구성된 (m=2) 수 12.57 ( N =12.57 ) 이란 사실을 우리는 쉽게 알 수 있다. 

 

N에 대한 r-1의 보수 = r의 n 제곱 - r의 (-m)제곱 -N 이다. 

10 의 보수 (r=10) 에서 우리는 r-1의 보수를 구하는 것이기 때문에 9의 보수를 구하는 것이라고 보면 된다. 

 

즉 9의 보수는, 10의 2제곱 - 10의 -3제곱 - 12.57 = 100 - 0.001 -12.57 = 99.999-12.57 = 87.43 이라는 사실을 확인할 수 있다. 

 


 

3. 2진수의 1의 보수 , 2의 보수 

 

2진수의 1의 보수는 쉽게 구할 수 있다. 

바로 0 과 1을 서로 바꾸는 방법 

 

즉 1100의 보수를 구하면 0011 이 된다. ( 1의 보수) 여기서 결과값에 1을 더하는 것이 바로 2의 보수이다. 이때 만약 MSB로 부터 올려야 하는 케이스가 발생되면 과감히 버린다. 

 

즉, 6을 예시로, 0000110 의 보수를 구해보자. 1의 보수는 1111001이 된다. 2의 보수는 1111010 이 됨을 우리는 쉽게 알 수 있을 것이다. 

 


4. 보수의 감산 

 

: 추가 공부 예정

728x90
반응형