找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5332|回復: 16
收起左側

請教C語言程序if_else if知識

  [復制鏈接]
ID:394056 發(fā)表于 2018-9-5 14:58 | 顯示全部樓層 |閱讀模式
一個C語言問題請教大家

else if(count==6&&rbuf[5]==(rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4]))   
    {
    count=0 ;
    uart1_flag=rbuf[3];
     ES=0;   
    }
  else if(count==7&&(rbuf[6]==(rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4]^rbuf[5])))
    {

    count=0  ;
    uart1_flag=rbuf[3];
    ES=0;
    }
  else if(count==8&&(rbuf[7]==(rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4]^rbuf[5]^rbuf[6])))  
    {
    count=0  ;
    uart1_flag=rbuf[3];
    ES=0;
    }
這里邊的count==6&&rbuf[5]==(rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4]是什么意思啊
還請詳解
回復

使用道具 舉報

ID:390775 發(fā)表于 2018-9-5 17:29 | 顯示全部樓層
count==6&&rbuf[5]==(rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4])
首先 是位于 判斷條件中的判斷語句  
  count == 6  //是判斷  count  是不是等于  6  如果等于  整個語句為真(非0)
  &&  //邏輯   與    只有當  左右條件都為真是  才輸出真
  rbuf[5]   ==  (rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4])  //其中 ^是按位異或:用于位運算,每個位相同為0,不同為1
比如:7和4

它們的2進制值為:111,和100;它們異或后就是11  所以   rbuf[5]   ==  (rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4])  // 是判斷 rbuf[5]  是否與   rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4]  異或 結果相等
  若  相等  為真  否則為假  
  然后 再判斷  &&   左右兩邊的  是否同時  為真  即可
   希望能幫到你

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:277550 發(fā)表于 2018-9-5 17:51 | 顯示全部樓層
這知識,已經不是if else的范圍,而是運算符號的問題了

位運算符:

包括:1。&位與符 2。|位或符 3。^位異或符 4。~位取反符
~~~~~~~~~~~~~~~~~~~~~~~~~

評分

參與人數 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:394056 發(fā)表于 2018-9-7 10:14 | 顯示全部樓層
zhaoyinlo 發(fā)表于 2018-9-5 17:29
count==6&&rbuf[5]==(rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4])
首先 是位于 判斷條件中的判斷語句  
   ...

謝謝你的講解,瞬間明白了

回復

使用道具 舉報

ID:394056 發(fā)表于 2018-9-7 11:43 | 顯示全部樓層
還有else if語句怎么用啊
回復

使用道具 舉報

ID:367840 發(fā)表于 2018-9-7 14:53 | 顯示全部樓層
建議樓主多多實踐,多試下不同的參數會有什么現象,就會理解的更深了
回復

使用道具 舉報

ID:395019 發(fā)表于 2018-9-7 15:32 | 顯示全部樓層
再判斷  &&   左右兩邊的  是否同時  為真  即可
回復

使用道具 舉報

ID:370231 發(fā)表于 2018-9-7 15:46 | 顯示全部樓層
先理解一下這個,然后再看你的
if(條件)
如果條件為真,執(zhí)行這里;(條件為真才執(zhí)行)
else
否則,執(zhí)行這里。(只要不是真,就執(zhí)行。)
-----------------------------
if(條件1)
如果條件1為真,執(zhí)行這里;(條件為真才執(zhí)行)
else if(條件2)
否則,當條件2為真執(zhí)行這里。(當條件1不為真,條件2為真執(zhí)行這里)
else
條件1,條件2都不為真,執(zhí)行這里

在說白一點:
if(今天是星期三)
  今天要上班
else
今天不用上班
上面的情況,只有星期三要上班。其他的星期一,二,四,五,六,日。都不用上班。

if(今天是星期六)
今天不用上班
else if(今天是星期天)
今天不用上班
else
都用上班
第一個,先判斷,是不是星期六,如果是,就不用上班,
如果今天不是星期六,繼續(xù)用else if判斷今天是不是星期天,如果是,也不用上班。
如果今天不是星期六,也不是星期天,那么,就會執(zhí)行最后一個ELSE,
都要上班

評分

參與人數 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:395066 發(fā)表于 2018-9-7 16:23 | 顯示全部樓層
在count等于8的情況下判斷rbuf數組的前7個數異或是否等于下表為7的值

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:395263 發(fā)表于 2018-9-8 10:20 | 顯示全部樓層
這個應用應該是用于收到的數組進行異或校驗,并準備回傳數據

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:318629 發(fā)表于 2018-9-8 10:56 | 顯示全部樓層
樓主的主要問題是運算符問題,建議樓主學習一下二進制邏輯真值表

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:318629 發(fā)表于 2018-9-8 10:57 | 顯示全部樓層
樓主的主要問題是運算符問題,建議樓主學習一下二進制邏輯真值表

圖片歪了尷尬

圖片歪了尷尬

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:395307 發(fā)表于 2018-9-8 12:05 | 顯示全部樓層
^ 異或,兩個bit相同出0,不同出1.

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:395324 發(fā)表于 2018-9-8 13:08 | 顯示全部樓層
V count==6&&rbuf[5]==(rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4]) 首先 是位于 判斷條件中的判斷語句     count == 6  //是判斷  count  是不是等于  6  如果等于  整個語句為真(非0)   &&  //邏輯   與    只有當  左右條件都為真是  才輸出真   rbuf[5]   ==  (rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4])  //其中 ^是按位異或:用于位運算,每個位相同為0,不同為1 比如:7和4  它們的2進制值為:111,和100;它們異或后就是11  所以   rbuf[5]   ==  (rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4])  // 是判斷 rbuf[5]  是否與   rbuf[0]^rbuf[1]^rbuf[2]^rbuf[3]^rbuf[4]  異或 結果相等   若  相等  為真  否則為假     然后 再判斷  &&   左右兩邊的  是否同時  為真  即可    希望能幫到你

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:395355 發(fā)表于 2018-9-8 15:12 | 顯示全部樓層
意思應該是收到6個數,且第6個數為檢驗碼,為前5個數的異或結果。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:395367 發(fā)表于 2018-9-8 15:46 | 顯示全部樓層
復雜問題分解成一個一個小問題,就很好解決了

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:393712 發(fā)表于 2018-9-8 16:12 | 顯示全部樓層
兄弟去圖書館借本c語言看看吧,希望能幫到你。呵呵

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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