이산수학 c1 프로젝트 6
TRANSCRIPT
project #6
2-비트 덧셈기 설계
이산치수학 C1조
20083458 민영지
20093474 박구남
20093526 정준용
20093530 최고봉
순서
•조원별 업무분담
•일정 계획
•문제파악
•알고리즘 계획
•소스구현
•문제점 파악 / 해결법 토의
•최종소스
최고봉최종 보고서 작성 및 프로젝트 총괄
및 소스 구현
박구남 알고리즘 구상 및 소스 구현
정준용 자료조사 및 소스 구현
민영지 알고리즘 구상 및 자료조사
05.30~06.04과제에 대한 자료 조사 및 업무분담
일정 계획 및 알고리즘 구성
06.04~06.06프로젝트 알고리즘 확인 및 소스 구
현 및 보고서 작성
1)조원별 업무 분담
2)일정계획
3)문제파악
2진수 두 개를 입력받아 더해 출력하는 것
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;
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);
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;
}
코딩결과