请教:C语言中下面这两种取反有什么区别!

2020-01-10 19:37发布

本帖最后由 迅得电子 于 2019-6-11 16:13 编辑

前提:下面这个程序是我在按键控制LED程序中节选的一段程序,两个demo都有相应的取反操作,我也试着交换使用,效果是一样的,但是想知道这两种取反有什么区别。
           例如,哪个取反方法用在特定的地方之类的?谢谢啦!
                    一下就是节选程序。


          //示例2:无锁存
            GPIO_WriteBit(LEDPORT,LED1,(BitAction)(!GPIO_ReadInputDataBit(KEYPORT,KEY1));

                //示例3:有锁存
                if(!GPIO_ReadInputDataBit(KEYPORT,KEY1)){ //读按键接口的电平
                        delay_ms(20); //延时去抖动
                        if(!GPIO_ReadInputDataBit(KEYPORT,KEY1)){ //读按键接口的电平
                                GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1-GPIO_ReadOutputDataBit(LEDPORT,LED1))); //LED取反
                                while(!GPIO_ReadInputDataBit(KEYPORT,KEY1)); //等待按键松开
                        }
                }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
wye11083
1楼-- · 2020-01-12 03:20
lcw_swust 发表于 2019-6-11 16:23
楼主的意思是 !x 与 1-x 的区别?
一个是逻辑运算,一个是算术运算,当x>1结果就不一样了,。 ...

估计LZ还没见过~这种操作符呢
迅得电子
2楼-- · 2020-01-12 04:02
 精彩回答 2  元偷偷看……
didadida
3楼-- · 2020-01-12 07:05
看楼主名字是培训机构?不要用delay是基本要求
迅得电子
4楼-- · 2020-01-12 10:13
didadida 发表于 2019-6-12 10:20
看楼主名字是培训机构?不要用delay是基本要求

不是培训机构哦
didadida
5楼-- · 2020-01-12 12:42
迅得电子 发表于 2019-6-12 10:23
不是培训机构哦

嗯就卖卖开发板啥的是吧
迅得电子
6楼-- · 2020-01-12 15:21
didadida 发表于 2019-6-12 10:24
嗯就卖卖开发板啥的是吧

没有,这是公司的名字,从事电子组装,贴片。我自己刚接触STM32,买的开发板用。怎么卖开发板,哈哈哈

一周热门 更多>