[应用相关] 关于if语句问题

[复制链接]
 楼主| flycamelaaa 发表于 2021-6-9 15:08 | 显示全部楼层 |阅读模式
time1=1;time2=16;time3=1;time4=1;
        
        while(1)
            {
            if(time1&time2&time3&time4)
                {
                    TIM_Cmd(TIM3,DISABLE);
                    EXTI->IMR=0xffff;
                    for(i=0;i<86;++i)
                        {
                            y=25+(i*i-(i+time1-time2)*(i+time1-time2))/100;            //L0>L1,i+time2-time1>i
                            x=25+(i*i-(i+time3-time2)*(i+time3-time2))/100;            //L1>L2,i+time2-time3>i   
                            z=25+(i*i-(i+time4-time2)*(i+time4-time2))/100;
                            if(fabs(sqrt(x*x+y*y+z*z)-i)<=6)
                            break;
                           
                        }

                }
为什么 if(time1&time2&time3&time4)不执行啊,不是都是真了吗??
sonicll 发表于 2021-6-9 15:16 | 显示全部楼层
基础问题,“&”和“&&”的区别
sadicy 发表于 2021-6-9 15:17 | 显示全部楼层
在if前后,printf些信息看看。
MJS旋涡 发表于 2021-6-9 16:33 | 显示全部楼层
if里边“&”执行与操作,结果为0
ouyanglei92 发表于 2021-6-10 07:35 | 显示全部楼层
16=0x10,time1&time2&time3&time4=1&0x10&1&1=0
&是位运算符,&&是逻辑运算符号
这两个运算符要弄明白
ayb_ice 发表于 2021-6-10 11:22 | 显示全部楼层
&-->&&
呐咯密密 发表于 2021-6-10 11:35 | 显示全部楼层
这个问题我也遇到过,我一直以为是IF里面嵌套太多&造成的,结果换成&&就好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

824

主题

4298

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部