推 stupid0319: unsigned char最大也只到255,你除以1000當然會出錯啊 12/11 18:03
sorry,沒注意到區間
→ Caesar08: 第二個是在問什麼,怎麼有看沒懂 12/11 18:22
讀取數值的原型態,先將數值讀進array
Data_read(unsigned char data[5])
我要將讀取到的data[5]和某a[2]裡面的數值做比較
ex: data[2]->裡面是30、a[2]->裡面是25
※ 編輯: andy79323 (120.109.170.21), 12/11/2015 18:34:25
→ Caesar08: data[2]==a[2] ? 12/11 19:01
不一樣,這是兩個變數陣列
※ 編輯: andy79323 (120.109.170.21), 12/11/2015 20:33:39
→ Caesar08: 你是要比較整個陣列,還是比較陣列裡面的某兩個元素? 12/11 20:42
比較陣列某幾個元素
※ 編輯: andy79323 (120.109.170.21), 12/11/2015 21:26:09
推 chuegou: 我猜你是想要比較"data[]整個陣列代表的數" 12/11 22:06
→ chuegou: 和"a[]陣列的某個元素"? 12/11 22:07
是的,差不多是這意思
data[5]-> 我只要取data[2]、data[0]出來做比較
a[2]->欲比較的數值,例如:a[2]={20,25};
我上網查過陣列不能直接跟陣列做比較,請問先進們有比較好的方式可以處理?
※ 編輯: andy79323 (120.109.182.133), 12/11/2015 22:33:42
→ chuegou: 想用union....但是data[]取的不連續... 12/11 23:04
→ Caesar08: data[2]==a[0], data[2]==a[1]? 12/11 23:09
推 overhead: 還是看不懂你第二題的意思 你想比較甚麼元素 就指定該 12/11 23:28
→ overhead: 兩個元素去作比較就對了 依需求可以用雙重迴圈 12/11 23:28
→ overhead: 另外int b[2]={30,20};只有b[0],b[1]兩個元素 沒有b[2] 12/11 23:30
a[2]->這個是放欲比較的數值,可以不用設陣列,這可有可無
data[5]->會取data[2]、data[0]這是因為要取特殊的數據用
第一個問題我設為 unsigned short int 功能也是讀不到
※ 編輯: andy79323 (120.109.182.133), 12/12/2015 00:57:42
推 chuegou: 第一題想到一種可能性...沒有加一個NULL當作結束位元? 12/12 04:25
第一個問題,我用同樣的方式做轉換,是可以正常傳送轉換後的數據
http://imgur.com/wbq9NwU
推 OPIV: 我覺得…先學好國文…囧…真的看不懂你想表達什麼 12/12 04:56
sorry,表達的可能不是很清楚
副程式長得有點像這樣
應該說我的問題在模組讀取完數值放入的array->稱作a
跟我要比較的數值->稱作b
'a和b的比較過程'->我的問題處,陣列的比較不能直接這樣做,我不太懂這怎麼處理@@
http://imgur.com/l5NRKDY
※ 編輯: andy79323 (120.109.182.133), 12/12/2015 09:27:34
推 james732: 所以你看到dh的值是…? 12/12 09:36
→ james732: 需求是:只要取data[2]、data[0]出來做比較 12/12 09:38
→ james732: 這樣的話unsigned int tmp = (dh[2] << 8) | dh[0] 12/12 09:40
→ james732: 組合成一個int後再拿來比較? 12/12 09:40
這個是模組的原型
bit Data_read(unsigned char data[5])
U8temp = (data[0] + data[1] + data[2] + data[3]);
if (data[4] == (data[0] + data[1] + data[2] + data[3]))
{
return 1;
}
從data[5]裡面讀到的數->抓取data[0]、data[2]出來和上面圖片中的dcc[2]做比較
data[5]=dh[5]->dh裡面放的是上面讀取的數據
是的,要先組合成一個int,再來和dcc[2]的數值比較
※ 編輯: andy79323 (120.109.170.21), 12/12/2015 11:50:27
推 OPIV: 先把權重大的部分放進一個 int 裡面,然後左移這個 int,再 12/12 12:30
→ OPIV: 把權重小的部分放也進去,組成一個完整的 int 12/12 12:31
→ OPIV: int 被拆成好幾段的話也是重複這個步驟 12/12 12:31
→ Caesar08: data是一個array,data[5]是一個int,你一直說data[5], 12/12 13:11
→ Caesar08: 我以為你要比一個不存在的資料 12/12 13:11
→ Caesar08: 你圖片84行與90行沒甚麼問題(除了char轉int) 12/12 13:13
→ Caesar08: 乾脆直接dh[0]>dcc[0], dh[0]<dcc[1], dh[2]>dcc[0], 12/12 13:15
→ Caesar08: dh[2]<dcc[1]這樣比較,但你要小心==的時候 12/12 13:16
好像也是不行
http://imgur.com/2zn9LEg
※ 編輯: andy79323 (120.109.170.21), 12/12/2015 14:17:35
→ Caesar08: ... [重要] 發文前務必閱讀:常見問題十三誡 第2點 12/12 15:03
我第二個問題解決了,但是我用我圖片的方法做...
※ 編輯: andy79323 (120.109.170.21), 12/12/2015 17:51:58
→ cyber9270: 陣列宣告成dh[2], 操作時用dh[2]的資料是啥?陣列指示 12/13 08:08
→ cyber9270: 數超過1不會讀到亂碼嗎? 12/13 08:08
→ cyber9270: 我是指21樓下面的程式 12/13 08:12