|
十进制数N和其他d进制数的转换是计算机实现计算的基本问题,其解读方法很多,其中一个简单算法基于下列原理:
N=(N div d)×d+N mod d(其中:div为整除运算,mod为求余运算)
例如:(1348)10=(2504)8.其运算过程如下:
N |
N div 8 |
N mod 8 |
1348 |
168 |
4 |
168 |
21 |
0 |
21 |
2 |
5 |
2 |
0 |
2 |
假设现在要编址一个满足下列要求的程序:对于输入的位置一个非负十进制整数,打印输出与其等值的八进制数。由于上述计算过程是从低位到高位顺序产生八进制数的各个数位,而打印输出,一般来说应从高位到低位进行,恰好和计算过程相反。因此,若将计算过程中的得到的八进制数的各位顺序进栈,则按出栈序列打印出输出的即为与输入对应的八进制数。
void conversion(){
//对于输入的任何一个非负十进制整数,打印输出与其等值的八进制数
InitStack(S); //构造空栈
scanf ("%d",N);
while(N){
Push(S,N%8);
N=N/8;
}
while(!StackEmpty(s)){
Pop(S,e);
printf("%d",e);
}
}//conversion
凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com。