哪位大侠帮我看下程序

2019-07-16 10:11发布

** 函数名:u32tostr
** 功能描述: 将一个32位的变量dat转为字符串,比如把1234转为"1234"
** 输入参数: dat:带转的long型的变量
             str:指向字符数组的指针,转换后的字节串放在其中
** 输出参数: 无
***********************************************************/
void u32tostr(unsigned long dat,char *str)
{
        char temp[20];
        unsigned char i=0,j=0;
        i=0;
        while(dat)
        {
                temp[i]=dat%10+0x30;
                i++;
                dat/=10;
        }
        j=i;
        for(i=0;i<j;i++)
        {
                  str[i]=temp[j-i-1];
        }
        if(!i) {str[i++]='0';}
        str[i]=0;
}
///第6行为什么加0x30,,,谢谢指点
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
andy_wsj
1楼-- · 2019-07-16 16:03
0到9在ASCII码表内的值是0x30到0x39
假设将1转换成字符“1”,实际就是把数字1转换成数字0x31,同理其他数字也是这样

一周热门 更多>