스택으로 십진수를 이진수 변환
- 최초 등록일
- 2011.04.29
- 최종 저작일
- 2011.01
- 4페이지/ 한컴오피스
- 가격 1,000원
소개글
스택으로 십진수를 이진수로 변환하는 프로그램입니다.
C로만 짠 코드이고
비쥬얼 C++ 2010환경에서 하였고 2008과도 호환됩니다.
목차
. 없음
본문내용
. 1. 과제 설명:
십진수의 숫자를 이진수로 바꾸는 프로그램을 작성해 본다. 작성시 수업시간에 배운 스택을 바탕으로 코드를 짠다.
2. 기본이론
<그림>
다음과 같이 11을 예로 들면 스택에 차례대로 저장이 된다. 큰 하얀색 블록 두개는 Count와 Top이 있는 Stack 구조체 형태이고 조그만한 블록 중 파란블록은 next, 숫자가 들어간 작은 블록은 data 값이고 작은 블록 두개가 만드는 것이 StackNode 구조체 형태이다
*C언어로 선형 리스트로 구현 한 모습이다.
3. 소스코드 설명
typedef struct tStackNode{
element data;
struct tStackNode *next;
}StackNode; //스택정의
//스택을 정의하는 부분이다. 8바이트가 생성됨
typedef struct Stack{
int count;
StackNode *top;
}Stack;// 스택헤더정의
//스택의 헤더가 정의 되는 부분이다. 위의 그림에서 하얀블록을 나타냄
while(dec_value>0)
{
value=dec_value%2; //2를 나눈 나머지를 value 에 저장
dec_value=dec_value/2;
Push(pStack,value);// value 에 스택을 넣는다.
}
//스택에 2로 나눈 나머지 모두 저장
//2로 나눈 나머지 값을 스택에 차곡차곡 쌓는다. 11을 예로 들면 나누어서 첫 번째로 나오는 나머지는 일의 자리이다. 두 번째로 나눈 값은 2의 자리라서 스택에 쌓아두면 나중에 꺼내서 정렬할때는 가장 큰 자리숫자부터 나와서 정렬하기 편하다.
while(pStack->count)
참고 자료
없음