오래 못 할 짓 하지 않기

논리 설계 2 ( 사진 안 뜸 ) 본문

2학년 1학기/논리 설계 ( Logic design )

논리 설계 2 ( 사진 안 뜸 )

쫑알bot 2023. 3. 5. 15:29
728x90
  • 자릿수 체계  (Positional Number Systems)

각 자릿수는 해당 진법에 맞춰, 자릿수가 하나 올라가면 한 번씩 제곱이 된다.

해당 자릿수의 값 d와 r 진법 일 때, 

 

 

ex)

  • 10진법 172      → 1*[ 10^2 ] + 7*[ 10^1 ] + 2* [ 10^0 ] 

  • 2진법 1011010 → 1*[2^6]+0*[2^5]+1*[2^4]+1*[2^3]+0*[2^2]+1*[2^1]+0*[2^0]

                                   = 64+0+16+8+0+2+0

                                   = 90

 

  • 10진법 →2진법 바꾸는 법

→ 계속 2로 나누면서 나머지로 나왔던 것들을 밑에서부터 모은다.

 

 

+ 8진법 :

0-7의 숫자로 이루어져 있고, 1개의 숫자당 3개의 비트로 나타낼 수 있다.

 

+ 16진법 :0-9 + A, B, C, D, E, F로 이루어져 있고, 1개의 숫자당 4개의 비트로 나타낼 수 있다.

16진법의 순서는 1 > 2 > 3 > ...9 > A > B > C > ...  > F  > 10 > 11 > ... >19 > 1A > 1B > ...1F > 20

 

 

 


Signed / Unsigned

 

Unsigned number 에서는 숫자의 크기만 나타낸다.

반면 Signed number 에서는 가장 앞에 있는 숫자는 부호를 나타낸다  ( 1 = 음수 / 0 =양수 )

 

 

따라서 n비트인 Signed numbers 에서는 나타낼 수 있는 숫자의 범위는

이렇게 된다.

[ 2^[n-1]인 이유는 가장 앞 비트는 부호를 나타내기 때문에 ] 

[  -1이 들어가는 이유 = +-0이 있기때문 ]  

 

 

  • 보수

→ 각 자리 숫자의 합이 일정하게 만드는 값.

→ 현재 숫자에서 자릿수가 하나 더 올라가게 만드는 값 (10의 보수에서는 가능) or (해당 자릿수 개수만큼 다 같은 숫자로 만드는 값)

ex) 100의 대한 10의 보수는 ? > 100이 한 자릿수가 올라가려면? 1000이 되어야 함 > +900이 필요

 

 

  내 식으로 표현하면, N의 보수는 현재 갖고 있는 값에서 NN... 이 되게 하는 숫자 / 10의 보수면 다음 자릿수 가게 하는 값

ex) 80에 대한 9의 보수 > 아직 2자리 숫자고, 99를 안 지남. > 99로 간다. > 99-80=19 > 80에 대한 9의 보수 = 19

 ex) 251에 대한 9의 보수 > 아직 3자리 숫자고, 999를 안지남. > 999로 간다 > 999-251 = 748 > 251에 대한 9의 보수 =748

 

 

 

주로 보수는 N의 보수와 N-1의 보수를 같이 구하는데.

N-1의 보수를 구하고, 그 값에서 1을 더하면 N의 보수가 된다

 

 

signed-magnitude system에서는 뺄셈을 할 때는 오류가 발생하므로, 보수의 개념을 사용한다.

 

 


  • 1의 보수 

→ 구하는 법 : 주어진 2진법에서 0은 1로 , 1은 0으로 바꾼다.

→ 범위 :  +-0이 있음 (그래서 범위에 -1이 들어간다)

  • 2의 보수 

→ 구하는 법 : 1) 1의 보수를 구하고 1을 더한다. (Carry out 주의) 

                        2) 해당 수에 +1를 한다.

→ 범위 : -0이 없고 -8이 있음

 

  • 부호가 바뀐 숫자(n비트)를 구하는 순서

1. 가장 왼쪽비트는 따로 생각하여, 0이나1로 바꿔준다.  (1진수면 여기서 끝) 

2.  n개의 비트면 가장 왼쪽을 제외한 (n-1)개는 1의 보수를 구해준다. 

3. 그 값에 1을 더한다.                                                      (2진수면 여기까지 다 해야함)

 

 

  • 1의 보수 덧셈 순서

1. 그냥 더한다.

2. 자리 올림 (Carry out) 이 발생하면 그 1을 다시 결괏값에 더한다.

 

  • 2의 보수 덧셈 순서

1. 그냥 더한다.

2. 자리 올림 (Carry out) 이 발생하면 그 1을 버린다.

 

## 해당 비트수로 계산할 수 있는 값을 넘어가게 되면 Overflow 가 발생하여 + + 연산이 -가 거나 - - 연산이 +가 되는 경우가 생길 수도 있다.

 

  • Overflow의 존재 유무 : 

    N비트를 더할 때 N번째 Carry out값과, N-1번째 Carry out값을 본다.

  두 값이 다를 때, Carry out이 발생한다. 

 

 

 

  • Signed 에만 있는 거 : '+0'이 하나 더 있음.
  • 1의 보수에만 있는 거 : '-0'이 있음
  • 2의 보수에만 있는 거 : '-8'이 있음

 

출처 : 한동대학교 고윤민 교수님 -논리설계 PPT

 https://gdnn.tistory.com/289

 

보수란? - 1의 보수, 2의 보수

안녕하세요. 취업한 공대누나입니다. 기초적인 논리 회로를 많이 까먹어서 논리회로를 복습해보고자 합니다. 오늘은 보수의 개념에 대해 알아보도록 하겠습니다. 1. 보수란? 우선 보수란 각 자

gdnn.tistory.com