找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1601|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

關(guān)于C語言與運算“&”的問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:861694 發(fā)表于 2024-2-2 10:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
代碼如下:

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

問題:為什么 NONE=0x01時,也會執(zhí)行 LED2=ON1,NONE & 0x02 不應(yīng)該等于0嗎?

用的是STC15W單片機(jī),請大家?guī)兔匆幌聠栴}出在哪兒?


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:861694 發(fā)表于 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;
回復(fù)

使用道具 舉報

板凳
ID:275826 發(fā)表于 2024-2-2 11:58 | 只看該作者
先進(jìn)行==運算,后進(jìn)行&運算

評分

參與人數(shù) 1黑幣 +10 收起 理由
戡拤 + 10 是優(yōu)先級的問題

查看全部評分

回復(fù)

使用道具 舉報

地板
ID:452475 發(fā)表于 2024-2-2 12:19 | 只看該作者
  “=”號有右結(jié)合性,先計算0x02==0x02,再計算NONE &

評分

參與人數(shù) 1黑幣 +10 收起 理由
戡拤 + 10 原來還要考慮結(jié)合性

查看全部評分

回復(fù)

使用道具 舉報

5#
ID:1045628 發(fā)表于 2024-2-2 13:39 | 只看該作者
如果對運算符號的優(yōu)先級沒有把握,請多使用小括號
  if(NONE & 0x02==0x02) LED2 = ON1;else LED2 = OFF1;
等效于  if(NONE & 0x01) LED2 = ON1;else LED2 = OFF1;
當(dāng)NONE等于1時自然LED2 = ON1

評分

參與人數(shù) 1黑幣 +15 收起 理由
戡拤 + 15 解答得很詳細(xì),非常感謝!!

查看全部評分

回復(fù)

使用道具 舉報

6#
ID:861694 發(fā)表于 2024-2-2 14:25 | 只看該作者
感謝小伙伴們的回復(fù),問題已解決,謝謝
回復(fù)

使用道具 舉報

7#
ID:1057978 發(fā)表于 2024-2-2 14:25 | 只看該作者
說明if(NONE & 0x02==0x02)里面先執(zhí)行了0x02==0x02然后才與NONE做與運算。
說明想實現(xiàn)你的目的你得加括號:if((NONE & 0x02)==0x02)
回復(fù)

使用道具 舉報

8#
ID:458247 發(fā)表于 2024-2-2 16:08 | 只看該作者
夏至淺淺落 發(fā)表于 2024-2-2 12:19
“=”號有右結(jié)合性,先計算0x02==0x02,再計算NONE &

不是結(jié)合性的原因。"=="優(yōu)先級是7,"&"優(yōu)先級是8,先進(jìn)行優(yōu)先級高的運算
回復(fù)

使用道具 舉報

9#
ID:1004920 發(fā)表于 2024-2-2 16:40 | 只看該作者
如果對運算符號的優(yōu)先級不太了解的話,個人建議先運算的地方加括號。
回復(fù)

使用道具 舉報

10#
ID:1110596 發(fā)表于 2024-2-3 10:35 | 只看該作者
要考慮優(yōu)先級
回復(fù)

使用道具 舉報

11#
ID:1110596 發(fā)表于 2024-2-3 10:37 | 只看該作者
要考慮優(yōu)先級的問題,可以改成這樣:
if((NONE & 0x02)==0x02) LED2 = ON1;else LED2 = OFF1;
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表