[問題]陣列比較及型態轉換疑問
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Keil uVision5 C51
問題(Question):
板上先進們好,遇到一些問題,請各位幫忙,謝謝
1. 我有個模組是用浮點數做為函數的宣告,函數型式如下
float Data_read()
我想要將讀出來的數值轉換成ASCII,我直接轉成int做輸出
程式可以編譯成功,但是實體上就無法正常運行
請問是我轉換的過程有錯誤?
2. 如果讀出某段數值是先丟入array,我要將讀到的數值做比較
可以直接用數字做比較還是需要用兩個array做比較呢?
程式碼(Code):(請善用置底文網頁, 記得排版)
1.float -> ASCII
http://ideone.com/5m4hc5
2.array比較
http://ideone.com/yhUbSy
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.109.170.21
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1449818479.A.67B.html
推
12/11 18:03, , 1F
12/11 18:03, 1F
sorry,沒注意到區間
→
12/11 18:22, , 2F
12/11 18:22, 2F
讀取數值的原型態,先將數值讀進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
→
12/11 19:01, , 3F
12/11 19:01, 3F
不一樣,這是兩個變數陣列
※ 編輯: andy79323 (120.109.170.21), 12/11/2015 20:33:39
→
12/11 20:42, , 4F
12/11 20:42, 4F
比較陣列某幾個元素
※ 編輯: andy79323 (120.109.170.21), 12/11/2015 21:26:09
推
12/11 22:06, , 5F
12/11 22:06, 5F
→
12/11 22:07, , 6F
12/11 22:07, 6F
是的,差不多是這意思
data[5]-> 我只要取data[2]、data[0]出來做比較
a[2]->欲比較的數值,例如:a[2]={20,25};
我上網查過陣列不能直接跟陣列做比較,請問先進們有比較好的方式可以處理?
※ 編輯: andy79323 (120.109.182.133), 12/11/2015 22:33:42
→
12/11 23:04, , 7F
12/11 23:04, 7F
→
12/11 23:09, , 8F
12/11 23:09, 8F
推
12/11 23:28, , 9F
12/11 23:28, 9F
→
12/11 23:28, , 10F
12/11 23:28, 10F
→
12/11 23:30, , 11F
12/11 23:30, 11F
a[2]->這個是放欲比較的數值,可以不用設陣列,這可有可無
data[5]->會取data[2]、data[0]這是因為要取特殊的數據用
第一個問題我設為 unsigned short int 功能也是讀不到
※ 編輯: andy79323 (120.109.182.133), 12/12/2015 00:57:42
推
12/12 04:25, , 12F
12/12 04:25, 12F
推
12/12 04:56, , 13F
12/12 04:56, 13F
sorry,表達的可能不是很清楚
副程式長得有點像這樣
應該說我的問題在模組讀取完數值放入的array->稱作a
跟我要比較的數值->稱作b
'a和b的比較過程'->我的問題處,陣列的比較不能直接這樣做,我不太懂這怎麼處理@@
http://imgur.com/l5NRKDY
※ 編輯: andy79323 (120.109.182.133), 12/12/2015 09:27:34
推
12/12 09:36, , 14F
12/12 09:36, 14F
→
12/12 09:38, , 15F
12/12 09:38, 15F
→
12/12 09:40, , 16F
12/12 09:40, 16F
→
12/12 09:40, , 17F
12/12 09:40, 17F
這個是模組的原型
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
推
12/12 12:30, , 18F
12/12 12:30, 18F
→
12/12 12:31, , 19F
12/12 12:31, 19F
→
12/12 12:31, , 20F
12/12 12:31, 20F
→
12/12 13:11, , 21F
12/12 13:11, 21F
→
12/12 13:11, , 22F
12/12 13:11, 22F
→
12/12 13:13, , 23F
12/12 13:13, 23F
→
12/12 13:15, , 24F
12/12 13:15, 24F
→
12/12 13:16, , 25F
12/12 13:16, 25F
→
12/12 15:03, , 26F
12/12 15:03, 26F
我第二個問題解決了,但是我用我圖片的方法做...
※ 編輯: andy79323 (120.109.170.21), 12/12/2015 17:51:58
→
12/13 08:08, , 27F
12/13 08:08, 27F
→
12/13 08:08, , 28F
12/13 08:08, 28F
→
12/13 08:12, , 29F
12/13 08:12, 29F