目录
一、数制转换
十进制数N和其他d进制数的转换是计算机实现计算的基本问题,其解决办法很多,其中一个简单算法基于如下原理(其中div表示整除运算,mod表示求余运算):
N = (N div d) × d + N mod d
假设要编制一个十进制数转八进制数的程序,对实现的功能要求为:对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。
由于上述计算过程是从低位到高位顺序产生八进制数的各个数位,而打印输出,一般来说应该从高位到低位进行,恰好和计算过程相反。因此,若将计算过程中得到的八进制数的各位顺序进栈,则按出栈序列打印输出的即为与输入对应的八进制数。
代码实现如下:
void conversion(){
//对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数
InitStack(S);//构造空栈
scanf("%d", N);
while(N){
Push(S, N % 8);
N = N / 8;
}
while(!StackEmpty(S)){