思路
依次取余
选择用递归来实现先输出高位后输出低位
1.转二进制实现
voidfun(intn) { if(n/2) //如果n/2=0,就往回返,=1,说明还没有除尽,继续调用自己fun(n/2); printf("%d",n%2); } intmain() { intn; scanf("%d",&n); fun(n); return0; }
转二进制实例:
转8、16进制思路
标题算法和转2进制算法一样,对8,16取余就行,16进制需要每次判断余数是否大于9,’A’-‘F’
转8、16进制实现
voidfun(intn) { if(n/16) fun(n/16); if(n%16>9) n%16>9?printf("%c",n%16+55):printf("%d",n%16); //判断是否大于9,大于加55输出对应的A-F} intmain() { intn; scanf("%d",&n); fun(n); return0; }
转16进制实例
2.转字符‘0’ - ‘9’:
例:369转“369”
思路
对10取余获得它的每一位,加48得到它的ASCLL码
转字符‘0’-‘9’实现
voidfun(intn) { if(n/10) fun(n/10); printf("%c",n%10+48); //获取个位+48得到ASCLL码输出字符} intmain() { intn; scanf("%d",&n); fun(n); return0; }
转字符‘0’-‘9’实例
额好像看着没什么效果哈