为了账号安全,请及时绑定邮箱和手机立即绑定

C语言十进制转换为十六进制的代码问题,有几行看不懂,求教

C语言十进制转换为十六进制的代码问题,有几行看不懂,求教

C
dsDESKTOP 2018-05-05 22:32:43
char buffer [3]; //用于存放转换好的十六进制字符串。由于只要支持2位整数,所以长度3即可 char * inttohex(int aa){    if (aa / 16 < 10)   //计算十位,并转换成字符         buffer[0] = aa / 16 + '0';    else        buffer[0] = aa / 16 - 10 + 'A';    if (aa % 16 < 10)   //计算个位,并转换成字符        buffer[1] = aa % 16 + '0';    else        buffer[1] = aa % 16 - 10 + 'A';    buffer[2] = '\0';   //字符串结束标志    return (buffer);} buffer[0] = aa / 16 + '0';和buffer[1] = aa % 16 - 10 + 'A';怎么来的,没懂代码的意思
查看完整描述

2 回答

?
___C___

TA贡献168条经验 获得超109个赞

用到了ASCII,你去了解一下ASCII与c语言中int和char的关系你就知道了

查看完整回答
反对 回复 2018-05-06
?
半枯

TA贡献101条经验 获得超45个赞

buffer[0] = aa / 16 + '0';首先aa是整型,+'0'的目的是在强转为字符串的时候如果小于10,就从0开始,大于10就-10然后从'A'开始

查看完整回答
反对 回复 2018-05-06
  • 2 回答
  • 0 关注
  • 2419 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信