linked list를 이용한 십진수 이진수변환과 연산
- 최초 등록일
- 2010.07.22
- 최종 저작일
- 2010.07
- 13페이지/
압축파일
- 가격 2,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
이번숙제는 주어진 세쌍의 십진수를 이진화하여 Linked list에 저장하고 이진화된 값을 출력하도록하고, 입력받은 이진화된 값에 대해 덧셈과 곱셈을 수행하고 그 결과를 출력하는 프로그램을 작성한다. 프린트할때는 차수가 높은 것부터 낮은 순으로 이진수를 프린트하여야한다. 그후 최종적으로 이진화되어 있는 결과값을 십진수로 바꾸고 출력한다.
목차
1.Introduction
1.Method & Experoment
3.flow chart
4.Analysis
5.Source code
본문내용
1.Introduction
이번숙제는 주어진 세쌍의 십진수를 이진화하여 Linked list에 저장하고 이진화된 값을 출력하도록하고, 입력받은 이진화된 값에 대해 덧셈과 곱셈을 수행하고 그 결과를 출력하는 프로그램을 작성한다. 프린트할때는 차수가 높은 것부터 낮은 순으로 이진수를 프린트하여야한다. 그후 최종적으로 이진화되어 있는 결과값을 십진수로 바꾸고 출력한다.
1.Method & Experoment
여러 가지 용도로 쓰이는 함수들을 각기 구현하였기 때문에 함수별로 분석하겠다.
1)de2bi(nodeptr *Node,int n,int i)
십진수를 이진수로 바꾸어주기 위해서 나머지연산을 사용하여, 나머지가 1이 나오는 경우에만 그위치를 count하여 리스트의 order에 저장해주어 linked list에 이진수를 저장하도록하였다. 그리고 또한 나중에 덧셈을 할 때 필요한 최고차수를 변수에 저장하도록한다.
2)cal(nodeptr a)
연결리스트에 이진수로 저장되여있는 값을 십진수로 다시 돌려주는 함수로써 sumlist을 0으로 초기화해주고 중간값인 midval에 차수만큼 2를 곱해주어 sumlist에 더해주는 방식으로 이진수를 다시 십진화하였다.
3)dummy(nodeptr a)
이진화된 리스트를 역순으로 돌리려하다보니 원리스트에는 손상이가지않게 통째로 복사하여 새로운 리스트를 만들 필요가 있어 만든함수이다.
4)reverselist(nodeptr a)
이진화된 리스트를 더미함수로 복제하여 출력할 때 편하게 역순으로 만들어주는 함수로 교재에 있는 함수를 그대로 구현하였다.
5)shift(nodeptr a, int x, nodeptr *ptr)
그림으로 설명하면 곱셈을 할 때 곱해주는 수의 1이 잇는 낮은차수만큼 시프트를 시켜서 더해주어야하기 때문에 구현한 함수로 b의 차수만큼 a가 시프트되는 방식으로 구현하였다.
참고 자료
없음
압축파일 내 파일목록
2047덧셈.JPG
682덧셈.JPG
917덧셈.JPG
임의덧셈.JPG
2047곱셈.JPG
682곱셈.JPG
917곱셈.JPG
임의곱셈.JPG
Thumbs.db
hw4.c
HW4.hwp