C语言通过计算将十进制数转换为十六进制数

   此方法可计算四位十六进制数(即unsigned short所在范围)

unsigned char hex[16] = { 0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,0X0A,0X0B,0X0C,0X0D,0X0E,0X0F };
//首先将16进制的数列举出来
unsigned short addr ,val ;
//定义两个变量,addr 为存储转换为16进制后的结果,val 为需要转换的值0 - 65535
addr = hex[val/ 4096] * 4096 + hex[val% 4096 / 256] * 256 + hex[val% 4096 % 256 / 16] * 16 + hex[val% 16];
/*
	假设 val = 4660
	hex[val / 4096] * 4096	= 4660 / 4096 = hex[1] = 0X01 * 4096 = 0X1000
	hex[val % 4096 / 256] * 256 = 4660 % 4096 / 256 = 564 / 256 = hex[2] = 0X02 * 256 = 0X200
	hex[val % 4096 % 256/ 16] * 16 = 4660 % 4096 % 256 / 16 = 52 / 16 = hex[3] = 0X03 * 16 = 0X30
	hex[val % 16] = 4660 % 16 = 4660 - 4656 % 16 = hex[4] = 0X04
	0X1000 + 0X200 + 0X30 + 0X04 = 0X1234
*/

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小破胆子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值