首先要知道十进制怎么转换为十六进制
用文字所表达的意思就是
用这个数除以16,记下余数(余数为0-15之间,要注意10-15变为A-F),从最后一个余数读到第一个余数。
代码部分【1】:
(我觉得有问题,例如小的数都可以,但反例256就会出错,希望大家看看怎么改):
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
void fun(int n,char *p)
{
if (n < 16) //当n小于16时候 递归出口 /*当n为小于16的数也可以称为入口*/
{
if (n < 10)
*p = n + '0'; //对应10以内的0-9字符
else
*p = n - 10 + 'A'; //对应10-15的A-F字符
}
else //当n为大于16的数时候
{
int temp = n % 16; //temp为除以16的余数 先存起来
fun(n / 16, p++); //进入下一层递归