将一个十进制数转换成二进制,每次求得的各位二进制数入栈,全部计算完成后出栈输出

顺序栈的结构体定义

typedef struct TagStack{//栈顶进,栈顶出,先进后出
	int List[MAXSIZE];//顺序栈
	int top;//栈顶指针
	int base;//栈底指针
}Stack,*LinkStack;

转换入栈函数

void ValueSwitch(LinkStack &S,int N){
	while(N!=0){
		S->List[S->top+1]=N%2;//二进制数入栈
		N=N/2;
		S->top++;//入栈,栈顶指针后移
	}
}

源代码

#include <iostream>
using namespace std;
#include <stdlib.h>

#define MAXSIZE 20

typedef struct TagStack{//栈顶进,栈顶出,先进后出
	int List[MAXSIZE];//顺序栈
	int top;//栈顶指针
	int base;//栈底指针
}Stack,*LinkStack;

void ValueSwitch(LinkStack &S,int N){
	while(N!=0){
		S->List[S->top+1]=N%2;//二进制数入栈
		N=N/2;
		S->top++;//入栈,栈顶指针后移
	}
}

void main(){
	int N;
	cout<<"请输入十进制数:";
	cin>>N;

	LinkStack S;
	S=new Stack;//栈初始化
	S->top=0;
	S->base=0;

	ValueSwitch(S,N);

	cout<<endl;

	cout<<N<<"的二进制数:";
	while (S->top!=S->base){
		cout<<S->List[S->top]<<' ';
		S->top--;//出栈,栈顶指针前移
	}


	system("pause");
}

数值转换

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-11
  • 2021-11-04
  • 2021-12-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-04-01
  • 2021-12-09
  • 2021-12-11
相关资源
相似解决方案