이산수학 c1 프로젝트 6

7
project #6 2-비트 덧셈기 설계 이산치수학 C1조 20083458 민영지 20093474 박구남 20093526 정준용 20093530 최고봉

Upload: pkok15

Post on 12-Jul-2015

208 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: 이산수학 C1 프로젝트 6

project #6

2-비트 덧셈기 설계

이산치수학 C1조

20083458 민영지

20093474 박구남

20093526 정준용

20093530 최고봉

Page 2: 이산수학 C1 프로젝트 6

순서

•조원별 업무분담

•일정 계획

•문제파악

•알고리즘 계획

•소스구현

•문제점 파악 / 해결법 토의

•최종소스

Page 3: 이산수학 C1 프로젝트 6

최고봉최종 보고서 작성 및 프로젝트 총괄

및 소스 구현

박구남 알고리즘 구상 및 소스 구현

정준용 자료조사 및 소스 구현

민영지 알고리즘 구상 및 자료조사

05.30~06.04과제에 대한 자료 조사 및 업무분담

일정 계획 및 알고리즘 구성

06.04~06.06프로젝트 알고리즘 확인 및 소스 구

현 및 보고서 작성

1)조원별 업무 분담

2)일정계획

Page 4: 이산수학 C1 프로젝트 6

3)문제파악

2진수 두 개를 입력받아 더해 출력하는 것

Page 5: 이산수학 C1 프로젝트 6

4)알고리즘 계획

2진수 두 개를 입력받고 half-adder와 two-bit-adder를

이용하여 두 수의 합을 출력하는 것입니다.

5)소스 구현

#include <stdio.h>

#include <stdlib.h>

int* HalfAdder(int x, int y);

int* Two_Bit_Adder(int a, int b, int c, int d);

void main() {

int ab, cd;

int a, b, c, d;

int *efg;

int i;

printf("덧셈 할 2진수 숫자 2개를 입력하세요.\n");

scanf("%d %d",&ab,&cd);

a = ab/10;b = ab%10;

c = cd/10;d = cd%10;

Page 6: 이산수학 C1 프로젝트 6

efg = Two_Bit_Adder(a,b,c,d);

printf("%d%d%d\n",efg[0],efg[1],efg[2]);

printf("계속하시려면 아무키나 누르세요....");

getch();

}

int* HalfAdder(int x, int y) {

int *uv;

uv = (int *)malloc(2*sizeof(int));

uv[1] = ((~x)&y)|(x&(~y));

uv[0] = x&y;

return uv;

}

int* Two_Bit_Adder(int a, int b, int c, int d) {

int *efg;

int *uv1, *uv2, *uv3;

efg = (int *)malloc(3*sizeof(int));

uv1 = HalfAdder(a,c);

Page 7: 이산수학 C1 프로젝트 6

uv2 = HalfAdder(b,d);

uv3 = HalfAdder(uv1[1],uv2[0]);

efg[0] = uv1[0]|uv3[0];

efg[1] = uv3[1];

efg[2] = uv2[1];

return efg;

}

코딩결과