1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3561|回復: 8
收起左側

C語言程序 if((Key_Temp&0xf0)^0xf0) 求大家指導,不理解

[復制鏈接]
ID:734017 發表于 2020-4-20 23:36 | 顯示全部樓層 |閱讀模式
unsigned char Key_Scan(void)
{
   uchar Key_Temp,Scan_Code,Temp_Code;
   P2 = 0XF0;
   Key_Temp = P2;
   if((Key_Temp&0xf0)^0xf0)   



后面的沒寫,最后一句為什么等價于 if((Key_Temp&0xf0)!=0xf0)   
   
回復

使用道具 舉報

ID:70069 發表于 2020-4-21 08:13 | 顯示全部樓層
Key_Temp先和0xfo與,取高四位,然后再同0Xfo異或。
例Key_Temp=0xB3
就是10110011&11110000=10110000
然后10110000^11110000=01000000
如果Key_Temp=oxf3
11110011&11110000=11110000
11110000^11110000=00000000
異或就是如果相等輸出為0,
如果不相等,就輸出按位異或后的結果。也就是非0.
回復

使用道具 舉報

ID:584814 發表于 2020-4-21 09:15 | 顯示全部樓層
相等的數異或值為0,貌似與你那個所謂的等價于正好反過來。
回復

使用道具 舉報

ID:734017 發表于 2020-4-21 09:34 | 顯示全部樓層
benclee 發表于 2020-4-21 08:13
Key_Temp先和0xfo與,取高四位,然后再同0Xfo異或。
例Key_Temp=0xB3
就是10110011&11110000=10110000

是不是,非0判斷為假,if不執行
回復

使用道具 舉報

ID:282850 發表于 2020-4-21 09:59 | 顯示全部樓層
樓上說的很詳細。異或是跟1異反轉,跟0異不變。
Key_Temp&0xf0取高4位,^0xf0后,相當于找出高4位中是否有哪位不為1。故與!=0xf0是相同的。
回復

使用道具 舉報

ID:70069 發表于 2020-4-21 10:32 | 顯示全部樓層
0為假,非0為真。就是如果相同輸出為0,不執行。
如果輸出為非0,也就是不相同,執行。(相當于!=)
回復

使用道具 舉報

ID:734017 發表于 2020-4-21 11:32 | 顯示全部樓層
感謝大家
回復

使用道具 舉報

ID:734017 發表于 2020-4-21 11:49 | 顯示全部樓層
感謝大家
回復

使用道具 舉報

ID:389856 發表于 2020-4-21 15:10 | 顯示全部樓層
異或是兩個數相同為0,不同為1,可以和不等于等價。判斷的都是兩個數的每一位相不相等
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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