版权声明:转载请注明出处。 https://blog.csdn.net/baidu_38304645/article/details/82938457
十进制数N和其他d进制数的转换是计算机实现计算的基本问题。有一个简单算法基于下列原理:
N=(N div d) * d + N mod d (div为整除运算,mod为求余运算)
对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。
运行结果:
由于上述计算过程是从低位待高位孙旭产生八进制数的各个数位,而打印输出,一般来说应该从高位到低位进行,恰好和计算过程相反。因此,若将计算过程中得到的八进制数的各位顺序进栈,则按出栈顺序列打输出的即为对应的八进制数。
算法实现:
void Conversion(){
//十进制整数转换成八进制
int n;
SqStack<int> S;
int e;
printf("请输入十进制整数:");
scanf("%d",&n);
InitStack(S);
while(n) {
Push(S,n%8);
n=n/8;
}
printf("得到八进制整数:");
while(!StackEmpty(S)){
Pop(S,e);
printf("%d",e);
}
}