void itob( int a ) //非负十进制转二进制
{
int stack[32]; //初始化一个栈
int top = -1;
int N = a;
while ( N )
{
stack[++top] = N % 2;
N /= 2;
}

while( top != -1 )
{
cout << stack[top--];
}
cout << endl;
}

void itoo( int a )//非负十进制转八进制
{
int stack[32]; //初始化一个栈
int top = -1;
int N = a;
while ( N )
{
stack[++top] = N % 8;
N /= 8;
}

cout << "0";
while( top != -1 )
{
cout << stack[top--];
}
cout << endl;

}

void itoh( int a )//非负十进制转十六进制
{
int stack[32]; //初始化一个栈
int top = -1;
int N = a;
while ( N )
{
stack[++top] = N % 16;
N /= 16;
}

cout << "0x";
while( top != -1 )
{
cout << stack[top--];
}
cout << endl;
}

//测试
int main()
{
itob ( 16 );
itoo ( 16 );
itoh ( 16 );
return 0;
}

数据结构:栈的应用(进制转换)_十进制