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

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';怎么来的,没懂代码的意思

dsDESKTOP
浏览 2494回答 2
2回答

___C___

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

半枯

buffer[0] = aa / 16 + '0';首先aa是整型,+'0'的目的是在强转为字符串的时候如果小于10,就从0开始,大于10就-10然后从'A'开始
打开App,查看更多内容
随时随地看视频慕课网APP