找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1388|回复: 11
打印 上一主题 下一主题
收起左侧

C语言语法求解

[复制链接]
跳转到指定楼层
楼主
ID:735286 发表于 2021-2-19 11:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        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);                           
        }
为什么实现不了仿真???
求求大神指导一下

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:196216 发表于 2021-2-19 14:51 | 只看该作者
if((disdata[1]>1&&disdata[1]<3)&&disdata[2]<5)这样试试 括号问题
回复

使用道具 举报

板凳
ID:112099 发表于 2021-2-19 15:48 | 只看该作者
你这不是比较十个位吧?我怎么感觉在比较十位和百位?
回复

使用道具 举报

地板
ID:644924 发表于 2021-2-19 16:02 | 只看该作者
前面的disdata[1]和disdata[2]已经转换成ASCII码了,所以下面比较的时候需要用ASCII码比较

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

使用道具 举报

5#
ID:592807 发表于 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比
回复

使用道具 举报

6#
ID:592807 发表于 2021-2-19 16:28 | 只看该作者
我一岁 发表于 2021-2-19 14:51
if((disdata[1]>1&&disdata[1]

要和字符比,他加0x30了
回复

使用道具 举报

7#
ID:716656 发表于 2021-2-19 17:07 | 只看该作者
括号有问题(()
回复

使用道具 举报

8#
ID:213173 发表于 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);
        }


回复

使用道具 举报

9#
ID:824490 发表于 2021-2-19 22:42 | 只看该作者
tvalue%100,就是取tvalue的个位和10位了,不用这么麻烦!还用的上数组?还要转成ASC码来比较?
所以
if (tvalue%100>20 && tvalue%100<25)
{
加入你要的控制代码
}
回复

使用道具 举报

10#
ID:419968 发表于 2021-2-19 23:16 | 只看该作者
disdata[1]=tvalue%1000/100+0x30; +0x30 是ascii码
回复

使用道具 举报

11#
ID:735286 发表于 2021-2-19 23:54 | 只看该作者
中科爱思 发表于 2021-2-19 16:02
前面的disdata[1]和disdata[2]已经转换成ASCII码了,所以下面比较的时候需要用ASCII码比较

if((disdata[ ...

可以了,谢谢!
回复

使用道具 举报

12#
ID:885145 发表于 2021-2-20 15:57 | 只看该作者
前面的disdata[1]和disdata[2]已经转换成ASCII码了,所以下面比较的时候需要用ASCII码比较

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表