4625十进制转十六进制

#include <stdio.h>
#include <stdlib.h>

typedef   unsigned char     BOOL_T;
typedef   unsigned char     U8_T;
typedef   signed   char     S8_T;
typedef   unsigned short    U16_T;
typedef   signed   short    S16_T;
typedef   unsigned int      U32_T;
typedef   signed   int      S32_T;
typedef   unsigned __int64  U64_T;
typedef   signed   __int64  S64_T;
typedef   float             F32_T;
typedef   double            F64_T;
typedef   char *            STR_T;


U8_T x_mod(U16_T num)//球余数
{
	U8_T result = 0;
	result = num - (num/16)*16;
	return result;
}

/*************
4625/16=289 余数1 商289
289/16=18 余数1
18/16=1 余数2
1/16=0 余数1
所以4625d=1211h
******************/
U16_T DecToHex(U16_T num)
{
	U16_T result = 0;
	U16_T tmp_result = 0;
    if (num < 255)
    {
       result = ((num/16)<<4) + ((num%16)&0xF);

    }
    else
    {
        result |= x_mod(num);             //余数
        tmp_result = (num - x_mod(num))/16;//商

        result |= x_mod(tmp_result)<<4;   //余数
        tmp_result = (tmp_result - x_mod(tmp_result))/16 ;//商

        result |= x_mod(tmp_result)<<8;   //余数
        tmp_result = (tmp_result - x_mod(tmp_result))/16;//商

        result |= (x_mod(tmp_result)<<12);//余数
    }
    return result;
}


int main()
{
    printf("TEST:%5x\n", DecToHex(10400));
    printf("TEST:%5x\n", DecToHex(19));
    printf("TEST:%5x\n", DecToHex(15));
    printf("TEST:%5x\n", DecToHex(30825));
	return 0;
}

运行结果显示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天使也有爱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值