栈的应用-进制转换

88 阅读1分钟
#include<iostream>
#include<stack>
using namespace std;
void tenToTwoOrEight(int num,int n){
 stack<int>s;
 while(num){
 	s.push(num%n);
 	num=num/n;
 }
 while(!s.empty()){
 	cout<<s.top();
 	s.pop();
 }
}
void tenToSixteen(int num){
 stack<char>s;
 char str;
 while(num){
 	if(num%16<10){
 		str=num%16+'0';
 		s.push(str);
 	}else {
 		str=num%16-10+'A';
 		s.push(str);
 	}
 	num=num/16;
 }
 while(!s.empty()){
 	cout<<s.top();
 	s.pop();
 }
}
int main(){
 int num,n;
 cin>>num>>n;
 if(n==2||n==8){
 	tenToTwoOrEight(num,n);
 }else if(n==16){
 	tenToSixteen(num);
 }
 return 0;
}