본문 바로가기

University curriculum/[Course] Digital Engineering

[디지털 공학(5)] 보수 및 부호 표시

반응형

 


 

안녕하세요.

이번 시간에서 수의 체계중 보수에 대해 사용하는 이유부터 연산하는 과정을 작성하였습니다.


 

 

※1. 보수 정의

➀ 뺄셈시 덧셈으로 뺄셈을 하기 위해 사용한다.

➁ 곱셈은 덧셈의 연속으로 계산할 수 있다.

➂ 나눗셈은 뺄셈의 연속으로 계산할 수 있다.

➃ 컴퓨터는 가산기(덧셈기) 한 가지 만으로 4칙 연산이 가능하다.

 

 

 

※2. 1의 보수

- 0을 1로 1을 0으로 변환 시키는 것이다.

ex) 101010 -> 010101

- 디지털회로에서 반전기(Not Gate)를 이용하여 구할 수 있다.

 

 

 

※3. 2의 보수

➀ 방법 1 : 1의 보수에 1을 더하여 구한다.

ex) 100100 -> 011011 -> 011100

➁ 방법 2 : 우측부터 시작하여 첫 번째 1일 나올 때 까지는 불변하고, 이후의 비트들은 반전(0을 1로 1을 0으로 변환)시킨다.

ex) 1010010 -> xxxxx10 -> 0101110

 

+) 2의 보수는 음수를 표현하기 위해 사용한다.

컴퓨터에서는 보수를 사용하여 뺄셈 연산을 수행한다. 즉, 뺄셈 연산은 피감수에 보수를 취해 감수를 더하면 된다.

 

 

 

※4. 부호 표시 수

- 부호와 크기 정보를 모두 구성하여 해당 데이터가 양수인지 음수인지 그리고 크기 값은 얼마인지 모두 담고 있다.

- 부호 비트 : sign bit라고 하고 컴퓨터에서 다루어지는 2진수에서 그 음양을 구별하기 위해 사용하는 비트이다.(양수의 경우 : 0, 음수의 경우 : 1)

ex) 54 => 00110110(true form) / -54 => 10110110(true form)

 

 

 

※5. 부호 표시 방법

➀ 부호 - 크기 형식

(1) 일반적으로 가장 좌측 비트가 부호비트, 나머지 비트들은 크기 비트로 표현한다.

(2) 크기 비트들은 양수나 음수에 관계없이 크기만을 표시한다.

 

➁ 1의 보수 형식

(1) 양수는 부호 - 크기 형식과 같은 방법으로 표현한다.

(2) 음수는 대응되는 양수의 1의 보수로 취한다.

 

➂ 2의 보수 형식

(1) 양수는 부호 - 크기 형식과 같은 방법으로 표현한다.

(2) 음수는 대응되는 양수의 2의 보수로 취한다.

 

ex) 10진수 -35를 8비트로 표현

➀ 부호 - 크기 형식 : 10100011

➁ 1의 보수 형식 : 11011100

➂ 2의 보수 형식 : 11011101

 

+) 부호표시수의 2진수를 쉽게 읽는 방법

: MSB에는 음수의 가중치(8비트의 경우 -128)를 부여하고 나머지는 원래의 가중치를 곱하여 모두 더한다.

ex) 10010100

 

+) 2진수의 코드가 1이 많아서 10진수로 변환할 때 계산이 많아 번거로운 경우 : 2의 보수로 변환 후 나온 결과 값에 부호만 바꾸어 10진수를 계산할 수 있다.

ex) 11010111의 이진수를 10진수로 바꾸어라

11010111의 경우 1이 많아서 과정이 길어지므로 2의 보수로 변환 하여 1의 개수가 적게 만든 이후 부호를 바꿈

<풀이> 11010111 => 00101001 => 32+8+1=41 (부호반대) => -41

 

 

 

※6. 부호 표시 수의 10진수 변환

➀ 부호 - 크기 : 크기 비트 중 0을 제외한 1만을 가중치를 모두 더한 값에 부호 비트 보고 부호를 붙여준다. (1:음수 0:양수)

 

➁ 2의 보수 :

방법 1) : 음수의 경우 부호비트의 가중치를 음으로 하고 나머지 크기 비트는 양으로 하여 모든 가중치를 더한다.

ex) 10001000 = -(2^7)+2^3 = -128 + 8 = -120

방법 2) : 구하려는 값을 2의 보수로 취해준 후 그 값의 2진 크기를 구한다. 단 부호는 반대이다.(2진수에 1이 많을 경우 사용 추천)

ex) 11101110 => 00010010 = 2^4+2^1 (부호반대) => -18

 

➂ 1의 보수 :

방법 1) : 음수의 경우 부호 비트의 가중치를 음으로 하고 나머지 크기 비트는 양으로 하여 모든 가중치를 더하고 결과에 1을 더한다.

ex)10001000 = -(2^7)+2^3+1 = -128 + 8 + 1 =-119

방법 2) : 구하려는 값을 1의 보수로 취해준 후 그 값의 2진 크기를 구한다. 단 부호는 반대이다.(2진수에 1이 많을 경우 사용 추천)

ex) 11101110 => 00010001 = 2^4 + 2^0 (부호반대) = -17

 

 

 

7. 부호 표시 수의 표현 범위

- n비트로 표현할 수 있는 수의 조합 : 2^n

- 2의 보수의 경우, n비트로 표현할 수 있는 값의 범위 : 2^(n-1)-1~-(2^(n-1))

+) 컴퓨터에서는 부호표시 수를 표현하기 위해 2의 보수 형식이 가장 많이 사용된다.

 

 

 

※8. 컴퓨터시스템의 부호 표시 수 산술연산(2의 보수를 이용한다.)

➀ 덧셈

- 덧셈에 포함된 두 수 : 가수, 피가수

- 결과 : 합, 캐리 (두 수를 더하고, 최종 캐리가 발생하면 버린다.)

<덧셈의 4가지 유형>

· 두 수 모두 양수인 경우 => 합은 양수

· 음수보다 크기가 더 큰 양수인 경우 => 합은 양수

· 양수보다 크기가 더 큰 음수인 경우 => 합은 음수

· 두 수가 모두 음수인 경우 => 합은 음수

=> 11111101 => 00000011 <-> 2의 보수화 => 2+1 (부호반대) => -3

 

=> 11110111 => 00001001 <-> 2의 보수화 => 8 + 1 (부호반대) => -9

 

 

 

 

반응형