티스토리 뷰

※ 이진법과 이진수의 덧셈방법은 설명을 생략합니다

    이번 장에서는 덧셈 연산 구현방법에만 집중합니다

 

 

1. 덧셈의 의미

덧셈은 두 개의 수를 더하는 연산이고 가장 기본적인 연산이죠

사실 컴퓨터가 하는 연산이라고는 덧셈밖에 없습니다

덧셈만으로도 가깝게는 뺄셈, 곱셈, 나눗셈 을 할 수 있으며

더 나아가 로켓을 달에 쏘기도 하고 인간의 DNA를 분석하기도 하며

바둑을 두기도 하고 축구를 하기도 합니다

 

이 모든 것은 덧셈만으로 이루어 집니다

 

 

 

 

 

가히 놀랍고 혁명적입니다

정말 덧셈만으로 이게 다 가능하다고?!!

우리 인류는 이러한 일을 100년이 채 안되는 기간에 모두 이루어 냈습니다

우리는 앞으로 그 이유를 알아보고 혁명의 과정을 하나씩 따라가 볼 것입니다

 

일단, 이 모든 혁명의 시발점인 덧셈 계산기부터 만들어 보죠

 

 

 

2. 반가산기

한 자리 이진수 두 개를 더하면 어떻게 될까요?

이렇게 합과 자리올림이 발생합니다

이를 표로 정리하면 다음과 같습니다

 

 

A B
0 0 0
0 1 1
1 0 1
1 1 0

 

A B 자리올림
0 0 0
0 1 0
1 0 0
1 1 1

 

1) 을 논리회로로 나타내려면 어떤 게이트를 쓰면 될까요?

    A, B가 서로 다를 때만 참이니 앞서 배운 논리게이트 중 XOR 게이트와 똑같네요

    합에는 XOR 게이트를 쓰면 될 것 같습니다

 

2) 자리올림을 논리회로로 나타내려면 어떤 게이트를 쓰면 될까요?

   A, B가 모두 참일 때만 참이네요

   자리올림에는 AND 게이트를 쓰면 될 것 같습니다

 

그러면 두 이진수의 합을 논리회로로 나타내 볼까요?

 

 

 

 

 

 

 

 


이러한 덧셈 계산기를 
반가산기 라고 합니다
반가산기 역시 하나의 기호로 표현할 수 있습니다

 

 

3. 전가산기

앞의 계산기를 왜 반쪽 계산기라 부를까요?

이전 자리 덧셈에서 올리온 자리올림 수를 고려하지 않는 계산기이기 때문입니다

그러면, 자리올림 수까지 입력을 받아서 계산기를 개선해 봅시다

 

자리올림 수까지 더해주려면 어떤 과정을 거쳐야 할까요?

이진수 A, B 그리고 이전 자리올림 수 C가 입력되었다고 생각하겠습니다

 

 

 

 

1) 입력된 두 수 A, B를 더해 합 s1자리올림 c1을 구합니다

2) 합 s1과 이전 자리올림 수 C를 더해 합 s2와 자리올림 c2를 구합니다

3) 합 s2를 최종 합으로 출력합니다

4) 자리올림 c1자리올림 c2를 더해 최종 자리올림으로 출력합니다

 

 

 

 

이 과정을 논리회로로 표현하면 어떻게 표현할 수 있을까요?

 

1) A와 B를 반가산기로 더합니다

2) 합 s1과 C를 반가산기로 더합니다

4) 자리올림 c1 자리올림 c2의 덧셈을 생각해 보면

   0 또는 1이 나오지 절대 10이 되지 않습니다 (c1, c2 둘다 1인 경우는 없습니다)

   결국 굳이 반가산기를 쓸 필요가 없으며 OR 게이트로 덧셈을 대체할 수 있습니다

 

 

 

예시>

 

 

 

 

 


이러한 덧셈 계산기를 전가산기 라고 합니다
완전한 덧셈 계산기라는 의미이죠
전가산기 역시 기호로 나타낼 수 있습니다

 

 

 

 

4. 여러 자릿수의 덧셈 계산기

초등학교 때 한 자릿수의 덧셈을 먼저 배우고

두 자릿수의 덧셈을 배운 후 세 자릿수의 덧셈을 배우면

그 이후에는 네자리, 다섯자리, 마음대로 덧셈을 할 수 있게 되죠

원리를 이해하고 익숙해지기 때문입니다

 

 

마찬가지로 하나의 전가산기는 한 자릿수 이진수를 더할 수 있으니

이제 두 자릿수 이진수의 덧셈으로 자릿수를 늘려 보겠습니다

 

사실 해법은 간단합니다

그냥 전가산기 두개를 쓰면 되죠

그럼 그 두개의 전가산기를 어떻게 연결하면 될까요?

 

 

1) 두 자릿수 이진수 2개 A, B의 입력을 받습니다
2) 첫번째 자리수끼리 전가산기1로 더합니다
3) 전가산기1에서 나온 자리올림 출력을 두번째 자리수의 덧셈에 사용되는 전가산기2의 자리올림 수 입력에 입력합니다
4) 두번째 자리수끼리 전가산기2로 더합니다
5) 결과를 출력합니다

 

예시>

 

 

 

 

 

 

그럼, 세 자릿수의 덧셈 계산기는 어떻게 만들죠?

위와 동일한 방식으로 세 개의 전가산기를 연결하면 됩니다

 

 

 

이런 식으로 전가산기를 붙여 나가기만 하면

어떤 자릿수의 덧셈이더라도 모두 구현할 수 있습니다

 

 


컴퓨터는 일반적으로 1byte(바이트) 단위로 데이터를 다룹니다
그리고 1byte는 8bit(비트, 8자리 이진수)와 같습니다

결국 8bit(8자리) 덧셈 계산기가 일반적인 형태이며
이를 매번 8개의 전가산기로 표현할 수 없으니 간단한 기호로 나타냅니다

 

 

종이에 회로를 그려보거나 Simulator를 이용해서 꼭 덧셈 계산기 회로를 그려보세요

직접 그려보는게 학습에 많은 도움이 될 것입니다

 

다음 장에서는 잠깐 쉬어갈게요

제가 하고 싶은 이야기가 있습니다

 

 

※ 이진법과 이진수의 덧셈방법은 설명을 생략합니다

    이번 장에서는 덧셈 연산 구현방법에만 집중합니다

 

 

1. 덧셈의 의미

덧셈은 두 개의 수를 더하는 연산이고 가장 기본적인 연산이죠

사실 컴퓨터가 하는 연산이라고는 덧셈밖에 없습니다

덧셈만으로도 가깝게는 뺄셈, 곱셈, 나눗셈 을 할 수 있으며

더 나아가 로켓을 달에 쏘기도 하고 인간의 DNA를 분석하기도 하며

바둑을 두기도 하고 축구를 하기도 합니다

 

이 모든 것은 덧셈만으로 이루어 집니다

 

 

 

 

 

가히 놀랍고 혁명적입니다

정말 덧셈만으로 이게 다 가능하다고?!!

우리 인류는 이러한 일을 100년이 채 안되는 기간에 모두 이루어 냈습니다

우리는 앞으로 그 이유를 알아보고 혁명의 과정을 하나씩 따라가 볼 것입니다

 

일단, 이 모든 혁명의 시발점인 덧셈 계산기부터 만들어 보죠

 

 

 

2. 반가산기

한 자리 이진수 두 개를 더하면 어떻게 될까요?

이렇게 합과 자리올림이 발생합니다

이를 표로 정리하면 다음과 같습니다

 

 

A B
0 0 0
0 1 1
1 0 1
1 1 0

 

A B 자리올림
0 0 0
0 1 0
1 0 0
1 1 1

 

1) 을 논리회로로 나타내려면 어떤 게이트를 쓰면 될까요?

    A, B가 서로 다를 때만 참이니 앞서 배운 논리게이트 중 XOR 게이트와 똑같네요

    합에는 XOR 게이트를 쓰면 될 것 같습니다

 

2) 자리올림을 논리회로로 나타내려면 어떤 게이트를 쓰면 될까요?

   A, B가 모두 참일 때만 참이네요

   자리올림에는 AND 게이트를 쓰면 될 것 같습니다

 

그러면 두 이진수의 합을 논리회로로 나타내 볼까요?

 

 

 

 

 

 

 

 


이러한 덧셈 계산기를 
반가산기 라고 합니다
반가산기 역시 하나의 기호로 표현할 수 있습니다

 

 

3. 전가산기

앞의 계산기를 왜 반쪽 계산기라 부를까요?

이전 자리 덧셈에서 올리온 자리올림 수를 고려하지 않는 계산기이기 때문입니다

그러면, 자리올림 수까지 입력을 받아서 계산기를 개선해 봅시다

 

자리올림 수까지 더해주려면 어떤 과정을 거쳐야 할까요?

이진수 A, B 그리고 이전 자리올림 수 C가 입력되었다고 생각하겠습니다

 

 

 

 

1) 입력된 두 수 A, B를 더해 합 s1자리올림 c1을 구합니다

2) 합 s1과 이전 자리올림 수 C를 더해 합 s2와 자리올림 c2를 구합니다

3) 합 s2를 최종 합으로 출력합니다

4) 자리올림 c1자리올림 c2를 더해 최종 자리올림으로 출력합니다

 

 

 

 

이 과정을 논리회로로 표현하면 어떻게 표현할 수 있을까요?

 

1) A와 B를 반가산기로 더합니다

2) 합 s1과 C를 반가산기로 더합니다

4) 자리올림 c1 자리올림 c2의 덧셈을 생각해 보면

   0 또는 1이 나오지 절대 10이 되지 않습니다 (c1, c2 둘다 1인 경우는 없습니다)

   결국 굳이 반가산기를 쓸 필요가 없으며 OR 게이트로 덧셈을 대체할 수 있습니다

 

 

 

예시>

 

 

 

 

 


이러한 덧셈 계산기를 전가산기 라고 합니다
완전한 덧셈 계산기라는 의미이죠
전가산기 역시 기호로 나타낼 수 있습니다

 

 

 

 

4. 여러 자릿수의 덧셈 계산기

초등학교 때 한 자릿수의 덧셈을 먼저 배우고

두 자릿수의 덧셈을 배운 후 세 자릿수의 덧셈을 배우면

그 이후에는 네자리, 다섯자리, 마음대로 덧셈을 할 수 있게 되죠

원리를 이해하고 익숙해지기 때문입니다

 

 

마찬가지로 하나의 전가산기는 한 자릿수 이진수를 더할 수 있으니

이제 두 자릿수 이진수의 덧셈으로 자릿수를 늘려 보겠습니다

 

사실 해법은 간단합니다

그냥 전가산기 두개를 쓰면 되죠

그럼 그 두개의 전가산기를 어떻게 연결하면 될까요?

 

 

1) 두 자릿수 이진수 2개 A, B의 입력을 받습니다
2) 첫번째 자리수끼리 전가산기1로 더합니다
3) 전가산기1에서 나온 자리올림 출력을 두번째 자리수의 덧셈에 사용되는 전가산기2의 자리올림 수 입력에 입력합니다
4) 두번째 자리수끼리 전가산기2로 더합니다
5) 결과를 출력합니다

 

예시>

 

 

 

 

 

 

그럼, 세 자릿수의 덧셈 계산기는 어떻게 만들죠?

위와 동일한 방식으로 세 개의 전가산기를 연결하면 됩니다

 

 

 

이런 식으로 전가산기를 붙여 나가기만 하면

어떤 자릿수의 덧셈이더라도 모두 구현할 수 있습니다

 

 


컴퓨터는 일반적으로 1byte(바이트) 단위로 데이터를 다룹니다
그리고 1byte는 8bit(비트, 8자리 이진수)와 같습니다

결국 8bit(8자리) 덧셈 계산기가 일반적인 형태이며
이를 매번 8개의 전가산기로 표현할 수 없으니 간단한 기호로 나타냅니다

 

 

종이에 회로를 그려보거나 Simulator를 이용해서 꼭 덧셈 계산기 회로를 그려보세요

직접 그려보는게 학습에 많은 도움이 될 것입니다

 

다음 장에서는 잠깐 쉬어갈게요

제가 하고 싶은 이야기가 있습니다

 

 

※ 이진법과 이진수의 덧셈방법은 설명을 생략합니다

    이번 장에서는 덧셈 연산 구현방법에만 집중합니다

 

 

1. 덧셈의 의미

덧셈은 두 개의 수를 더하는 연산이고 가장 기본적인 연산이죠

사실 컴퓨터가 하는 연산이라고는 덧셈밖에 없습니다

덧셈만으로도 가깝게는 뺄셈, 곱셈, 나눗셈 을 할 수 있으며

더 나아가 로켓을 달에 쏘기도 하고 인간의 DNA를 분석하기도 하며

바둑을 두기도 하고 축구를 하기도 합니다

 

이 모든 것은 덧셈만으로 이루어 집니다

 

 

 

 

 

가히 놀랍고 혁명적입니다

정말 덧셈만으로 이게 다 가능하다고?!!

우리 인류는 이러한 일을 100년이 채 안되는 기간에 모두 이루어 냈습니다

우리는 앞으로 그 이유를 알아보고 혁명의 과정을 하나씩 따라가 볼 것입니다

 

일단, 이 모든 혁명의 시발점인 덧셈 계산기부터 만들어 보죠

 

 

 

2. 반가산기

한 자리 이진수 두 개를 더하면 어떻게 될까요?

이렇게 합과 자리올림이 발생합니다

이를 표로 정리하면 다음과 같습니다

 

 

A B
0 0 0
0 1 1
1 0 1
1 1 0

 

A B 자리올림
0 0 0
0 1 0
1 0 0
1 1 1

 

1) 을 논리회로로 나타내려면 어떤 게이트를 쓰면 될까요?

    A, B가 서로 다를 때만 참이니 앞서 배운 논리게이트 중 XOR 게이트와 똑같네요

    합에는 XOR 게이트를 쓰면 될 것 같습니다

 

2) 자리올림을 논리회로로 나타내려면 어떤 게이트를 쓰면 될까요?

   A, B가 모두 참일 때만 참이네요

   자리올림에는 AND 게이트를 쓰면 될 것 같습니다

 

그러면 두 이진수의 합을 논리회로로 나타내 볼까요?

 

 

 

 

 

 

 

 


이러한 덧셈 계산기를 
반가산기 라고 합니다
반가산기 역시 하나의 기호로 표현할 수 있습니다

 

 

3. 전가산기

앞의 계산기를 왜 반쪽 계산기라 부를까요?

이전 자리 덧셈에서 올리온 자리올림 수를 고려하지 않는 계산기이기 때문입니다

그러면, 자리올림 수까지 입력을 받아서 계산기를 개선해 봅시다

 

자리올림 수까지 더해주려면 어떤 과정을 거쳐야 할까요?

이진수 A, B 그리고 이전 자리올림 수 C가 입력되었다고 생각하겠습니다

 

 

 

 

1) 입력된 두 수 A, B를 더해 합 s1자리올림 c1을 구합니다

2) 합 s1과 이전 자리올림 수 C를 더해 합 s2와 자리올림 c2를 구합니다

3) 합 s2를 최종 합으로 출력합니다

4) 자리올림 c1자리올림 c2를 더해 최종 자리올림으로 출력합니다

 

 

 

 

이 과정을 논리회로로 표현하면 어떻게 표현할 수 있을까요?

 

1) A와 B를 반가산기로 더합니다

2) 합 s1과 C를 반가산기로 더합니다

4) 자리올림 c1 자리올림 c2의 덧셈을 생각해 보면

   0 또는 1이 나오지 절대 10이 되지 않습니다 (c1, c2 둘다 1인 경우는 없습니다)

   결국 굳이 반가산기를 쓸 필요가 없으며 OR 게이트로 덧셈을 대체할 수 있습니다

 

 

 

예시>

 

 

 

 

 


이러한 덧셈 계산기를 전가산기 라고 합니다
완전한 덧셈 계산기라는 의미이죠
전가산기 역시 기호로 나타낼 수 있습니다

 

 

 

 

4. 여러 자릿수의 덧셈 계산기

초등학교 때 한 자릿수의 덧셈을 먼저 배우고

두 자릿수의 덧셈을 배운 후 세 자릿수의 덧셈을 배우면

그 이후에는 네자리, 다섯자리, 마음대로 덧셈을 할 수 있게 되죠

원리를 이해하고 익숙해지기 때문입니다

 

 

마찬가지로 하나의 전가산기는 한 자릿수 이진수를 더할 수 있으니

이제 두 자릿수 이진수의 덧셈으로 자릿수를 늘려 보겠습니다

 

사실 해법은 간단합니다

그냥 전가산기 두개를 쓰면 되죠

그럼 그 두개의 전가산기를 어떻게 연결하면 될까요?

 

 

1) 두 자릿수 이진수 2개 A, B의 입력을 받습니다
2) 첫번째 자리수끼리 전가산기1로 더합니다
3) 전가산기1에서 나온 자리올림 출력을 두번째 자리수의 덧셈에 사용되는 전가산기2의 자리올림 수 입력에 입력합니다
4) 두번째 자리수끼리 전가산기2로 더합니다
5) 결과를 출력합니다

 

예시>

 

 

 

 

 

 

그럼, 세 자릿수의 덧셈 계산기는 어떻게 만들죠?

위와 동일한 방식으로 세 개의 전가산기를 연결하면 됩니다

 

 

 

이런 식으로 전가산기를 붙여 나가기만 하면

어떤 자릿수의 덧셈이더라도 모두 구현할 수 있습니다

 

 


컴퓨터는 일반적으로 1byte(바이트) 단위로 데이터를 다룹니다
그리고 1byte는 8bit(비트, 8자리 이진수)와 같습니다

결국 8bit(8자리) 덧셈 계산기가 일반적인 형태이며
이를 매번 8개의 전가산기로 표현할 수 없으니 간단한 기호로 나타냅니다

 

 

종이에 회로를 그려보거나 Simulator를 이용해서 꼭 덧셈 계산기 회로를 그려보세요

직접 그려보는게 학습에 많은 도움이 될 것입니다

 

다음 장에서는 잠깐 쉬어갈게요

제가 하고 싶은 이야기가 있습니다

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함