欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1698|回復: 10
收起左側

關于C語言與運算“&”的問題

[復制鏈接]
ID:861694 發(fā)表于 2024-2-2 10:18 | 顯示全部樓層 |閱讀模式
代碼如下:

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

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

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


回復

使用道具 舉報

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;
回復

使用道具 舉報

ID:275826 發(fā)表于 2024-2-2 11:58 | 顯示全部樓層
先進行==運算,后進行&運算

評分

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

查看全部評分

回復

使用道具 舉報

ID:452475 發(fā)表于 2024-2-2 12:19 | 顯示全部樓層
  “=”號有右結合性,先計算0x02==0x02,再計算NONE &

評分

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

查看全部評分

回復

使用道具 舉報

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;
當NONE等于1時自然LED2 = ON1

評分

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

查看全部評分

回復

使用道具 舉報

ID:861694 發(fā)表于 2024-2-2 14:25 | 顯示全部樓層
感謝小伙伴們的回復,問題已解決,謝謝
回復

使用道具 舉報

ID:1057978 發(fā)表于 2024-2-2 14:25 | 顯示全部樓層
說明if(NONE & 0x02==0x02)里面先執(zhí)行了0x02==0x02然后才與NONE做與運算。
說明想實現你的目的你得加括號:if((NONE & 0x02)==0x02)
回復

使用道具 舉報

ID:458247 發(fā)表于 2024-2-2 16:08 | 顯示全部樓層
夏至淺淺落 發(fā)表于 2024-2-2 12:19
“=”號有右結合性,先計算0x02==0x02,再計算NONE &

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

使用道具 舉報

ID:1004920 發(fā)表于 2024-2-2 16:40 | 顯示全部樓層
如果對運算符號的優(yōu)先級不太了解的話,個人建議先運算的地方加括號。
回復

使用道具 舉報

ID:1110596 發(fā)表于 2024-2-3 10:35 | 顯示全部樓層
要考慮優(yōu)先級
回復

使用道具 舉報

ID:1110596 發(fā)表于 2024-2-3 10:37 | 顯示全部樓層
要考慮優(yōu)先級的問題,可以改成這樣:
if((NONE & 0x02)==0x02) LED2 = ON1;else LED2 = OFF1;
回復

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表