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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2752|回復: 9
收起左側

關于C語言數組值求解

[復制鏈接]
ID:65237 發表于 2020-5-8 22:39 | 顯示全部樓層 |閱讀模式
  •                          if((da1527[0][0]==da1527[1][0]) && (da1527[0][1]==da1527[1][1]) && (da1527[0][2]==da1527[1][2]))
  •       //da1527收到的數據為11111101  10101010   11010100 , 11111101  10101010   11010100 這里成立
  •                       {
  •                      uchar u,i,x;
  •                                          rf_ok=1;
  •                                          for(i=0;i<3;i++)  //判定2262與1527
  •                         {
  •                            for(u=0;u<4;u++) {if(((da1527[0][ i]>>(u*2)) & 3)==2) {i=80;break;}}  //有10則為1527
  •                                                    if(i==80) break;
  •                         }
  •     for(u=0;u<4;u++) {if(((da1527[0][ i]>>(u*2)) & 3)==2) {i=80;break;}}  //這一句是怎么會是=80 怎么來的求解?
回復

使用道具 舉報

ID:592807 發表于 2020-5-9 08:42 | 顯示全部樓層
準確來說應該是i = 0x80;
你的代碼不嚴謹(da1527[0][ i]>>(u*2)) & 3)==2)這里應該換成(da1527[0][ i]>>8) & 3)==2)
回復

使用道具 舉報

ID:70069 發表于 2020-5-9 09:11 | 顯示全部樓層
da1527[0][0]=11111101
u=0時11111101右移0為&3(00000011)=00000001與2不相等
u=1時11111101右移2位=00111111 &3=00000011與2不相等
u=2時11111101右移4位=00001111&3=00000011
u=3時11111101右移6位=00000011&3=00000011
da1527[0][1]=10101010
u=0時10101010右移0位=10101010&3=00000010與2相等
i=80,并退出循環。
回復

使用道具 舉報

ID:267719 發表于 2020-5-9 10:38 | 顯示全部樓層
//把你的代碼重新整理一下
//da1527收到的數據為11111101  10101010   11010100 , 11111101  10101010   11010100 這里成立
if((da1527[0][0]==da1527[1][0]) && (da1527[0][1]==da1527[1][1]) && (da1527[0][2]==da1527[1][2]))
{
   uchar u,i,x;
   rf_ok=1;
   for(i=0;i<3;i++)  //判定2262與1527
   {
      for(u=0;u<4;u++)
      {
              if(((da1527[0][i]>>(u*2)) & 3)==2)
              {
                      i=80;break;
              }
      }  //有10則為1527
      if(i==80) break;
   }//10101010 里就有10 所以i=80
   for(u=0;u<4;u++)
   {
            if(((da1527[0][i]>>(u*2)) & 3)==2)
            {
                    i=80;break;
            }
   }  //這一句是怎么會是=80 怎么來的求解?   沒有給i重新賦值,所以i還是80
}

所以。。。這是誰的鍋?一個良好的寫代碼習慣是非常重要的!
回復

使用道具 舉報

ID:65237 發表于 2020-5-11 21:15 | 顯示全部樓層
黃youhui 發表于 2020-5-9 08:42
準確來說應該是i = 0x80;
你的代碼不嚴謹(da1527[0][ i]>>(u*2)) & 3)==2)這里應該換成(da1527[0][ i]>>8 ...


謝謝你的指點
這是zhangxinchun的貼子里的程序 我想問的是為什么這里 (da1527[0][ i]>>(u*2)) & 3)==2)相式成立時就是da1527  是根據什么來的 望指點
回復

使用道具 舉報

ID:65237 發表于 2020-5-11 21:16 | 顯示全部樓層
benclee 發表于 2020-5-9 09:11
da1527[0][0]=11111101
u=0時11111101右移0為&3(00000011)=00000001與2不相等
u=1時11111101右移2位=00 ...

謝謝你的指點
這是zhangxinchun的貼子里的程序 我想問的是為什么這里 (da1527[0][ i]>>(u*2)) & 3)==2)相式成立時就是da1527  是根據什么來的 望指點
回復

使用道具 舉報

ID:65237 發表于 2020-5-11 21:19 | 顯示全部樓層
carpcarey 發表于 2020-5-9 10:38
//把你的代碼重新整理一下
//da1527收到的數據為11111101  10101010   11010100 , 11111101  10101010    ...

謝謝你的指點
這是zhangxinchun的貼子里的程序 我想問的是為什么這里 (da1527[0][ i]>>(u*2)) & 3)==2)相式成立時就是da1527  是根據什么來的  因為TP2262也能出現這樣的編碼 就這沒搞明白 望指點
回復

使用道具 舉報

ID:267719 發表于 2020-5-14 09:39 | 顯示全部樓層
阿飛7812 發表于 2020-5-11 21:19
謝謝你的指點
這是zhangxinchun的貼子里的程序 我想問的是為什么這里 (da1527[0][ i]>>(u*2)) & 3)==2) ...

da1527[0]里的數據是二進制的b7b6b5b4b3b2b1b0
那da1527[0]>>(u*2)  u從0到3 那結果就是
u=0  u*2=0 二進制結果 b7b6b5b4b3b2b1b0
u=1  u*2=2 二進制結果 0  0  b7b6b5b4b3b2
u=2  u*3=4 二進制結果 0  0  0  0  b7b6b5b4
u=3  u*3=6 二進制結果 0  0  0  0  0  0  b7b6
那結果&3就是與上二進制的00000011
得到的就是 000000b1b0 000000b3b2 000000b5b4 000000b7b6
判斷是否==2,2的二進制是00000010
那就是看b1b0是不是10 ,b3b2是不是10 ,b5b4是不是10 ,b7b6是不是10
只要其中有1個是二進制10,就置標志i=80,并退出循環。
理解了么?
回復

使用道具 舉報

ID:267719 發表于 2020-5-14 10:00 | 顯示全部樓層
阿飛7812 發表于 2020-5-11 21:19
謝謝你的指點
這是zhangxinchun的貼子里的程序 我想問的是為什么這里 (da1527[0][ i]>>(u*2)) & 3)==2) ...

你不是有個注釋  //有10則為1527  么?
回復

使用道具 舉報

ID:65237 發表于 2020-5-15 09:01 來自觸屏版 | 顯示全部樓層
黃youhui 發表于 2020-5-9 08:42
準確來說應該是i = 0x80;
你的代碼不嚴謹(da1527[0][ i]>>(u*2)) & 3)==2)這里應該換成(da1527[0][ i]>>8 ...

你這移8位 你把8位都移出了 全變0,永遠都不會相等
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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