//范围是0-4095
不想写注释
uint32_t Num_to_Hex(int Num)
{
uint32_t Hex = 0x000;
uint32_t Off_Hex;
uint8_t i = 0;
uint8_t remain;
while(Num)
{
remain = Num%16;
if(!(Num/16))
{
Off_Hex = 0x001 << (i*4);
if(remain-9) Hex += Off_Hex*(0x00A + 0x001*(remain-10));
else Hex += Off_Hex*remain;
}
else
{
if(!(Num/256))
{
Off_Hex = 0x001 << (i*4);
if(remain-9) Hex += Off_Hex*(0x00A + 0x001*(remain-10));
else Hex += Off_Hex*remain;
i++;
}
else
{
Off_Hex = 0x001 << (i*4);
if(remain-9) Hex += Off_Hex*(0x00A + 0x001*(remain-10));
else Hex += Off_Hex*remain;
i++;
}
}
Num/=16;
}
return Hex;
}