久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 關于C語言與運算“&”的問題 [打印本頁]

作者: 戡拤    時間: 2024-2-2 10:18
標題: 關于C語言與運算“&”的問題
代碼如下:

            if(NONE & 0x02==0x02) LED2 = ON1;else LED2 = OFF1;

問題:為什么 NONE=0x01時,也會執行 LED2=ON1,NONE & 0x02 不應該等于0嗎?

用的是STC15W單片機,請大家幫忙看一下問題出在哪兒



作者: 戡拤    時間: 2024-2-2 11:22
我改成下面這樣,卻可以
DAT = NONE & 0x01;
if(DAT==0x01) LED1 = ON2;else LED1 = OFF2;
DAT = NONE & 0x02;
if(DAT==0x02) LED2 = ON1;else LED2 = OFF1;
作者: tyrl800    時間: 2024-2-2 11:58
先進行==運算,后進行&運算
作者: 夏至淺淺落    時間: 2024-2-2 12:19
  “=”號有右結合性,先計算0x02==0x02,再計算NONE &

作者: rctty    時間: 2024-2-2 13:39
如果對運算符號的優先級沒有把握,請多使用小括號
  if(NONE & 0x02==0x02) LED2 = ON1;else LED2 = OFF1;
等效于  if(NONE & 0x01) LED2 = ON1;else LED2 = OFF1;
當NONE等于1時自然LED2 = ON1
作者: 戡拤    時間: 2024-2-2 14:25
感謝小伙伴們的回復,問題已解決,謝謝
作者: wangxiangtan    時間: 2024-2-2 14:25
說明if(NONE & 0x02==0x02)里面先執行了0x02==0x02然后才與NONE做與運算。
說明想實現你的目的你得加括號:if((NONE & 0x02)==0x02)
作者: yzw846562238    時間: 2024-2-2 16:08
夏至淺淺落 發表于 2024-2-2 12:19
“=”號有右結合性,先計算0x02==0x02,再計算NONE &

不是結合性的原因。"=="優先級是7,"&"優先級是8,先進行優先級高的運算
作者: zch5200    時間: 2024-2-2 16:40
如果對運算符號的優先級不太了解的話,個人建議先運算的地方加括號。
作者: abcds42    時間: 2024-2-3 10:35
要考慮優先級
作者: abcds42    時間: 2024-2-3 10:37
要考慮優先級的問題,可以改成這樣:
if((NONE & 0x02)==0x02) LED2 = ON1;else LED2 = OFF1;




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品国产三级国产 | 成人国产精品久久久网站 | 国产精品一区二区三 | 亚洲一区在线看 | 国产无遮挡又黄又爽免费网站 | 国产精品国产成人国产三级 | 麻豆成人91精品二区三区 | 久久99国产精品 | 欧美专区第一页 | 天天插天天爽 | 成年人av | 天堂av影院 | 日韩在线中文 | 黄色网址免费看 | 91欧美激情一区二区三区成人 | 精品福利在线 | 日本天堂网 | 日日不卡av | 福利视频网站 | 日韩成人综合 | 特黄毛片 | 国产亚洲欧美日韩高清 | 福利视频1000 | 福利网站在线观看 | 国模一区二区 | 久久男人| 黄色一级大片 | 日本精品视频在线观看 | 色妞色视频一区二区三区四区 | 欧美成人精品激情在线观看 | 伊人久久大 | 闷骚老干部cao个爽 欧美区一区二 | 婷婷激情六月 | 精品黄色| 91精品国产乱码久久久久久 | 在线免费观看黄色片 | 一区二区精品 | 99热| 激情六月 | 日韩精品影视 | 亚洲激情一区二区 |