#include
int main(void)
{
int a8, b10, c16;/*a8,b10,c16分别代表八进制数,十进制数和十六进制数*/
scanf("%o%d%x", &a8, &b10, &c16);
printf("%o,%d,%x\n", a8,a8,a8);
printf("%o,%d,%x\n", b10,b10,b10);
printf("%o,%d,%x\n", c16,c16,c16);
}
要重复,添加循环就OK了。
这里简单的实现你的输入和输出功能,并没有真正从运算规则上去进行转换,你也没做这样的要求,不知道是不是你想要的结果。
1、十进制转换成八进制有两种方法:
(1)间接法:先将十进制转换成二进制,然后将二进制又转换成八进制。
(2)直接法:八进制是由二进制衍生而来的,因此可以采用与十进制转换为二进制相类似的方法,还是整数部分的转换和小数部分的转换,下面来具体讲解一下:
①整数部分
方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数。
②小数部分
方法:乘8取整法,即将小数部分乘以8,然后取整数部分,剩下的小数部分继续乘以8,然后取整数部分,剩下的小数部分又乘以8,一直取到小数部分为零为止。如果永远不能为零,就同十进制数的四舍五入一样,暂取个名字叫3舍4入。
2、十进制的转换到十六进制:
十六进制与八进制有很多相似之处,可以参照上面八进制与十进制的转换实现这两个进制之间的转换。
自己编个函数,或者百度一个