Kraklog

진법 연산 - 연산과 보수(1) 본문

Study/디지털논리회로

진법 연산 - 연산과 보수(1)

Krakens 2023. 8. 13. 21:45
728x90

1. 덧셈연산

10진수뿐만 아니라 다른 진수의 덧셈에서도 자리 올림이 발생한다.
10진수와 마찬가지로 각 진수에서도 각 자릿수에서 기수가 될 때 자리 올림이 발생한다.
이때 자리 올림을 Carry(캐리)라고 한다.

  • 2진수

2진수 합에서 맨 앞자리 1+1 의 합에서 캐리가 발생했기에 자릿수가 올라가며 101 (2) 의 값을 얻게 되었다.

 

  • 8진수

8진수 16진수의 합도 이와 같은데 

37(8)+46(8)의 값을 해준다면 일의 자리의 합은 13 이므로, 5가 남고 캐리가 발생한다.
다음 자리의 합은 3+4+1이 되는데, 8진수는 0~7까지 표현이 가능하므로 다시 캐리가 발생하며, 105(8)의 값을 얻을 수 있다.

 

  • 16진수

16진수 덧셈은 다음과 같다
16진수 덧셈은 가산의 합이 16이면 자리 올림이 발생하며, 최대수는 F이다. (8진수가 7인것과 같은 이유) 
이를 이용해서 계산 예를 들면 다음과 같다.

2.  뻴셈 연산

덧셈에선 올림수가 발생했다면 뺄셈에선 내림수가 발생한다. Borrow(내림수)라고 하며, 내림수가 발생하면 상윗자릿수에서 기수를 빌려와 뺄셈을 수행한다. 

  • 2진수

2.  곱셈 연산과 나눗셈 연산

곱셈 연산도 나머지와 비슷하다.


나눗셈의 경우 약간 까다로울 수 있으나 마찬가지로 비슷하다.

11001101(2) = 205이고 1011(2)는 11이다.
위 식과 같이 나누어주면 몫은 18이고 나머지는 7이 나오는데 위 식과 같은 값이 나옴을 알 수 있다.

나중에 다루겠지만 2진수의 곱셈 나눗셈은 Shift 방식을 사용하게 된다.

2진수의 곱셈을 자세히보면 자릿수별 덧셈이 되는것을 알 수 있는데 10진수때 행해진 곱셈과 마찬가지로
빨간색으로 표시한 0을 shift한 자릿수로 생각하면 된다. 
즉, 1000 * 10111 + 000*10111 + 00 * 10111 + 1 * 10111 로 생각해본다면 10111000은 10111을 왼쪽으로 3 회 shift 시킨 것이고, 10111은 왼쪽으로 0 회 (빨간색 0의 갯수 만큼 Shift 됨) 시킨 것이며, 이를 더 해준게 곱셈의 결과가 됨을 알 수 있다.

나눗셈은 곱셈과 반대로 우측으로 shift 시킨다.

우측으로 몫을 적어서 표현

728x90

'Study > 디지털논리회로' 카테고리의 다른 글

숫자 코드  (0) 2023.08.14
진법 연산 - 연산과 보수(2)  (0) 2023.08.14
진수  (0) 2023.08.13
펄스파형  (0) 2023.08.13
디지털 데이터의 표현  (0) 2023.08.13