进制的转换 以及十进制转换成x进制的代码

2进制的思路,满21    那么x进制就是满x1

对于非二进制数   1221;  如果他是3进制数 那么他的   十进制表示的数字就为,3^0*1+3^1*2+3^2*2+3^3*1 = 1+6+18+27 = 52;

#include<iostream>

using namespace std;

#define MAXSIZE 100
typedef int ElemType;

typedef struct { //顺序栈的数据类型
ElemType *base;
ElemType *top;
int stacksize;
}Stack;

int Init(Stack &S) { //初始化栈
S.base = new ElemType[MAXSIZE];
if (!S.base) exit(-2);
S.top = S.base;
S.stacksize = MAXSIZE;
return 1;
}

int Push(Stack &S, ElemType x) {//入栈
if (S.top - S.base == S.stacksize) {
cout << "栈空间已满!";
return 0;
}
*S.top++ = x;
return 1;
}

int Pop(Stack &S, ElemType &e) {//全部元素出栈
if (S.base == S.top)return 0;
e = *--S.top;
return 1;
}

int main() {
Stack A;
ElemType e;
int x, k;
Init(A); //初始化栈
cout << "请输入10进制数:";
cin >> x;
cout << "目标进制:";
cin >> k;
while (x) {
Push(A, x%k);
x = x / k;
}
cout << k << "进制数:"; //将栈中元素依次出栈,并输出
while (Pop(A, e)) {
cout << e;
}
system("pause");

}

代码转自网上

原文地址:https://www.cnblogs.com/thy95/p/12056308.html