要实现进制转换,通常的方法就是通过除法取余数的方法,但是通常得到各位数是反序输出的,这里介绍一种简单的方法实现正序输出结果。通过函数的递归调用,在得到所有的位的计算结果以后再输出。
简单C语言实现10进制到16进制的转换并输出结果:
#include <stdio.h> void convert(int current) { int next = current/16; int num = current%16; char table[] = {'A','B','C','D','E','F'}; if(num != 0) { convert(next); if(num < 10) { printf("%d",num); } else { printf("%c",table[num-10]); } } } int main() { int i = 3000; convert(3000); }
当然,解决这种问题有很多种方法,这里只是利用递归的一个思路。