标题: C语言语法求解 [打印本页]

作者: 愤怒的小呆头    时间: 2021-2-19 11:59
标题: C语言语法求解
        disdata[1]=tvalue%1000/100+0x30;// 十位数        
        disdata[2]=tvalue%100/10+0x30; // 个位数
怎么分别用if语句来比较个十位,比如说要在20~25区间为正确,其他为不正确。
我编译这个
if(disdata[1]>1&&disdata[1]<3&&(disdata[2]<5)
        {
        temp=0x80;   //led灯亮
        In_Data();
        Out_Data();
        DelayMS(1000);                           
        }
为什么实现不了仿真???
求求大神指导一下


作者: 我一岁    时间: 2021-2-19 14:51
if((disdata[1]>1&&disdata[1]<3)&&disdata[2]<5)这样试试 括号问题
作者: she    时间: 2021-2-19 15:48
你这不是比较十个位吧?我怎么感觉在比较十位和百位?
作者: 中科爱思    时间: 2021-2-19 16:02
前面的disdata[1]和disdata[2]已经转换成ASCII码了,所以下面比较的时候需要用ASCII码比较

if((disdata[1]>0x31&&disdata[1]<0x33)&&disdata[2]<0x35)
作者: 黄youhui    时间: 2021-2-19 16:27
if(disdata[1]>'1'&&disdata[1]<'3'&&(disdata[2]<'5')

disdata[1]=tvalue%1000/100+0x30;// 十位数   你都加0x30了还和1 2 3比
作者: 黄youhui    时间: 2021-2-19 16:28
我一岁 发表于 2021-2-19 14:51
if((disdata[1]>1&&disdata[1]

要和字符比,他加0x30了
作者: 压着我头发啦    时间: 2021-2-19 17:07
括号有问题(()
作者: wulin    时间: 2021-2-19 17:43
本帖最后由 wulin 于 2021-2-19 20:46 编辑

由于缓存disdata[x]里保存的是ASCLL码,所以用字符判断才合
20~25区间为判断条件
错误:disdata[1]=tvalue%1000/100+0x30;// 十位数
错误:disdata[2]=tvalue%100/10+0x30; // 个位数

正确:
        disdata[1]=tvalue/10%10+0x30;// 十位数
        disdata[2]=tvalue%10+0x30; // 个位数

        if(disdata[1]=='2' && disdata[2]<='5')
        {
                temp=0x80;   //led灯亮
                In_Data();
                Out_Data();
                DelayMS(1000);
        }



作者: 名字不是重点    时间: 2021-2-19 22:42
tvalue%100,就是取tvalue的个位和10位了,不用这么麻烦!还用的上数组?还要转成ASC码来比较?
所以
if (tvalue%100>20 && tvalue%100<25)
{
加入你要的控制代码
}
作者: adject    时间: 2021-2-19 23:16
disdata[1]=tvalue%1000/100+0x30; +0x30 是ascii码
作者: 愤怒的小呆头    时间: 2021-2-19 23:54
中科爱思 发表于 2021-2-19 16:02
前面的disdata[1]和disdata[2]已经转换成ASCII码了,所以下面比较的时候需要用ASCII码比较

if((disdata[ ...

可以了,谢谢!
作者: Aseven123456789    时间: 2021-2-20 15:57
前面的disdata[1]和disdata[2]已经转换成ASCII码了,所以下面比较的时候需要用ASCII码比较

if((disdata[1]>0x31&&disdata[1]<0x33)&&disdata[2]<0x35)




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