用堆栈怎样实现进制转换?解决方案

用堆栈怎样实现进制转换?
例如十进制向八进制的数制转换   (1348)10=(2504)8,其运算过程如下:
N                 N   div   8           N   mod   8
                    1348               168                           4
                    168                 21                             0
                    21                   2                               5
                    2                     0                               2
请问怎样利用堆栈用上述方法实现十进制向三进制的数制转换?


------解决方案--------------------
用系统堆栈就简单了直接递归:
void func(int dividant, int rank);
int main(int argc, char* argv[])
{
func(100,16);
return 0;
}
void func(int dividant, int rank)
{
int temp;
temp=dividant/rank;
if(temp!=0){
func(temp,rank);
printf( "%d ",dividant%rank);
return;
}
printf( "%d ",dividant);
}