컴퓨터과학/디지털 논리회로

2-1 진수 변환 및 보수

Declan Andrew 2019. 3. 19. 23:56
반응형

10진수 2진수 변환법

다른 진수 변환도 이 방법과 동일하다.

 

 

 

 

 

정수부분은 위와 같이 계산한다.

0으로 나누어 떨어 질 때 까지 계산하며, 나머지 아래에서 위로 순서대로 적어주면 2진수로 변환이 된다.

 

 

 

 

 

 

소수부분이 0이 될 때까지 변환하려는 진수로 곱해준다.

그러고나서 소수부분이 0이되면 위에서부터 아래로 적어주면 2진수로 변환이 되는 것이다.

맨 윗 부분은 정수 0을 나타내는 것이므로 소수부분에 적지않는다.

 

 

진수 계산 할 때

2진수 정수부분은 2² 2³ 

2*2, 2*2*2 이런식으로 계산하고

 

2진수 소수부분은 ½ ¼

1/2, 1/(2*2) 이렇게 계산한다.

계산법은 8진수 16진수도 동일하다

 

2진수를 4진수, 8진수, 16진수로 변환하는 방법은 

4진수로 변환할 땐 2개씩 묶는다.

8진수로 변환할 땐 3개씩 묶는다.

16진수로 변환할 땐 4개씩 묶는다.

뒤에서부터 차근차근 묶어주는 것이 핵심이다.

묶어주고 해당하는 진수의 가중치를 적용한다.

 

 

2 ) 보수(complement)

r진수 N은 r의 보수(r's complement)와 (r - 1)의 보수(r - 1's complement) 두 가지 보수가 있다.

예를 들어, 2진수에는 2의 보수와 1의 보수가 있고, 10진수에는 10의 보수와 9의 보수가 있다.

보수는 보충하는 수의 약자이다.(굳이 따지면.)

 

r의 보수

(식 ) rⁿ - N, N ≠ 0 

 0, N = 0

 

정수부분이 n개의 자리로 구성됐을 때 r의 n제곱에서 보수를 구해야하는 수를 빼주면 된다.

 

예를 들어, 10진수 35.34의 10의 보수는 10² - 35.34 = 64.66이고,

2진수 110111(10진수로 55이다.) 2의 보수는 2의 6승 -  (110111) = (1000000 - 110111) = 001001이다.

 

 

 

 

(r-1)의 보수

(공식) 1의 보수를 구하는 방법은 2진수는 비트를 반전시키면 된다.

2의 보수는 1의 보수에 1을 더한 것과 같다.

 

정확한 공식은

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

 

예를 들어 10진수 35.34의 9의 보수를 구하시오라는 문제가 주어졌을 때,

공식을 적용하면 아래와 같다.

10^2 - 10^-3 - 35.34

100 - 0.001(1/1000) - 35.34 = 99.999 - 35.34 = 64.659

10진수 35.34의 9의 보수는 64.659라고 볼 수 있다.

 

 

 

보수를 이용한 감산과 부호있는 2진수, 부동소수점 표현방법은 다음에 시간이 되면 다루도록 하겠다.

반응형