标题: 16进制转10进制 在12864液晶上显示 遇到问题了 [打印本页]

作者: jgmp    时间: 2016-1-14 10:52
标题: 16进制转10进制 在12864液晶上显示 遇到问题了
低字节  0xC1:  12*16+1=193
高字节 0x04:    0*16+4=4
(4*256+193)/10=121.7
我有一个程序函数可以把0xc1和0x04转换成10进制显示在12864液晶上显示。做不到(4*256+193)/10=121.7这一步。我把0x04c1用计算器直接得到1217.
                   Int_To_Str((ch5),time1);//ch5换成0x04c1能显示1217,如果ch5=0x04c1,就不行了。
                   Lcd_SetPos(0, 0);
                       i = 0;
                        while(time[ i] != '\0')
                        {
                                ch7 = time[ i++];
                                
                                Lcd_WriteDat(ch7);              //
                        }
求高手

作者: zae234234    时间: 2016-1-15 21:48
你的程序,这些貌似不能解决问题吧?
作者: jgmp    时间: 2016-1-16 08:03
void Int_To_Str(int x,char *Str)
{
        int t;
        char *Ptr,Buf[5];
        int i = 0;
        Ptr = Str;
        if(x < 10)                //
        {
                *Ptr ++ = '0';
                *Ptr ++ = x+0x30;
        }
        else
        {
                while(x > 0)
                {
                        t = x % 10;
                        x = x / 10;
                        Buf[i++] = t+0x30;        //
                }
                i -- ;
                for(;i >= 0;i --)                 //
                {
                        *(Ptr++) = Buf[i];
                }
        }
        *Ptr = '\0';
}
这个是转换函数
作者: 曾繁华    时间: 2016-1-16 17:04
是不是超过长度了?

作者: 1804018467    时间: 2016-1-17 11:17
数组算对了吗
作者: jgmp    时间: 2016-1-18 07:33
曾繁华 发表于 2016-1-16 17:04
是不是超过长度了?

在函数直接输入0x04c1可以在12864上显示1217,用ch1=0x04c1,把ch1放在函数里就不行了





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1