打印
[其它应用]

关于bit取反的问题

[复制链接]
2007|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我叫荧火|  楼主 | 2015-3-23 10:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 我叫荧火 于 2015-3-23 10:14 编辑

各位大牛,在Keil的环境下写法1的写法可以正常工作,写法二的写法不行呢?写法1:
                    if(Timg_500ms_flag)
                       Timg_500ms_flag=0;
                    elseKeilggi
                       Timg_500ms_flag=1;
写法2:
                ~Timg_500ms_flag;
补充一下:
        仿真器:JET51
           器件:SH79F083A



沙发
黑夜之狼| | 2015-3-24 09:20 | 只看该作者
写法2取反之后都没赋值,LZ赶紧复习下C语言吧

使用特权

评论回复
板凳
xjjspace| | 2015-3-24 11:12 | 只看该作者
C没有这种写法,一般取反也不这样用。你这个取反可能会根据单片机位数不同导致不同的结果。
正规的写法是, 置位Flag |=(1<<n),复位 Flag &=~(1<<n),取反 Flag ^=(1<<n)。

使用特权

评论回复
地板
ningling_21| | 2015-3-24 11:40 | 只看该作者
改为:

Timg_500ms_flag= ~Timg_500ms_flag;

使用特权

评论回复
5
我叫荧火|  楼主 | 2015-3-24 22:01 | 只看该作者
强烈多谢各位大侠指教,先结贴了。:)

使用特权

评论回复
6
nuaabob| | 2015-4-3 11:24 | 只看该作者
Timg_500ms_flag=!Timg_500ms_flag;
bit位的取反也可以这么写。

使用特权

评论回复
7
hnkf118| | 2015-4-5 20:08 | 只看该作者
一般建议先初始化后再做处理。要养成好习惯。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

275

帖子

5

粉丝