[Digital design] 2진수의 부호표기법과 덧셈 보충

2019. 6. 25. 01:34전자공학과 전공과목/digital design-논리회로

학부생의 입장에서 내용을 정리하였으며 피드백을 환영합니다.

 


 

 

signed number  vs unsigned number

 

1. Unsigned number vs Signed number

 

unsigned number : 음수가 아닌 수 , 즉 양수와 영을 말한다.

signed number : 양수, 음수, 영이 포함된다.

 

unsigned number를 사용하면 양수만을 사용할 수 있기 때문에 시간과 같은 양의 수 밖에 없는 자료를 한정된 메모리에서 더 많이 표현할 수 있다. 

 

이 글에서는 unsigned보다는 signed를 알아볼 것이다. 

 

2. Signed number

 

signed number를 표기하는 3가지 방법이 있다. 

 

signed-magnitude representation

(부호크기방식)

signed-1's-complement representation

(부호화 1의 보수)

signed-2's-complement representation

(부호화 2의 보수)

 

셋을 따로따로 이해하는 것 보다 비교하며 이해하는 것이 훨씬 더 잘 이해된다.

 

ex) -9를 세가지 방법으로 표현해보자

양수는 한개의 표현밖에 없지만 음수는 3가지 표현이 가능하다.

 

1) 부호크기방식

 부호 크기방식은 가장 왼쪽비트를 부호비트로 사용하여 양수면 0, 음수면 1으로 나타내는 것이다. 

혼란을 야기할 수 있는 표기법으로 생각할 수도 있겠지만 숫자를 나타내는 형식이 있기 때문에 혼란스럽지는 않다고 한다.

2) 부호화 1의 보수

 음수를 1의 보수를 사용해 나타내는 것이다.

3) 부호화 2의 보수

 음수를 2의 보수를 사용해 나타내는 것이다.

 

컴퓨터는 앞자리 숫자를 보고 음수인지 양수인지 확인한다.

밑의 두가지 방법은 첫번째 방법보다 연산에 용이하기 때문에 컴퓨터는 밑의 두가지방법을 사용한다.

하지만 부호화 1의 보수를 사용할 경우0이 두개인 문제가 생기기때문에(밑에서 설명한다.) 현재는 부호화 2의보수를 사용한다.

출처:정보통신기술용어해설

표를 보면 1의 보수와 2의 보수의 차이를 알 수 있다. 가장 큰 차이점은 -0의 존재 유무이다. +0을 2의보수 취해도 +0이다.  따라서 현재는 음수는 2의 보수를 취해 연산한다.

 

 

산술 덧셈-연산 보충(Arithmetic Addition)

 

이 글에서는 가장 많이 사용되는 2의보수를 사용한 산술덧셈을 소개할 것이다.

 

검은 박스는 앞에서 다룬 내용이다. 모른다면 바로 전의 포스팅을 참고하자. 

빨간 박스에서 음수는 모두 2의 보수를 취해주었다. 그후 덧셈해서 나오는 carry는 버리면 계산 끝이다.

 

앞의 내용과 함께 종합하면 2의 보수를 이용한 진수의 덧셈과 뺄셈은 다음과 같이 요약할 수 있다.

 

1) 계산하기 전에 자리수를 충분히 두어라(무엇을 추가하는 지는 상관없다.)

2) 음수는 2의 보수를 취해서 더하라

3) carry가 나온다면 버리고 가장 왼쪽 숫자가 0이면 양수, 1이면 음수이다.

4) 음수일 때 2의 보수를 취하고 -를 붙이는 것을 잊으면 안된다.