[問題]陣列比較及型態轉換疑問

作者: andy79323 (‵皿′)   2015-12-11 15:21:12
開發平台(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
作者: stupid0319 (徵女友)   2015-12-11 18:03:00
unsigned char最大也只到255,你除以1000當然會出錯啊
作者: Caesar08 (Caesar)   2015-12-11 18:22:00
第二個是在問什麼,怎麼有看沒懂data[2]==a[2] ?你是要比較整個陣列,還是比較陣列裡面的某兩個元素?
作者: chuegou (chuegou)   2015-12-11 22:06:00
我猜你是想要比較"data[]整個陣列代表的數"和"a[]陣列的某個元素"?想用union....但是data[]取的不連續...
作者: Caesar08 (Caesar)   2015-12-11 23:09:00
data[2]==a[0], data[2]==a[1]?
作者: overhead (overhead)   2015-12-11 23:28:00
還是看不懂你第二題的意思 你想比較甚麼元素 就指定該兩個元素去作比較就對了 依需求可以用雙重迴圈另外int b[2]={30,20};只有b[0],b[1]兩個元素 沒有b[2]
作者: chuegou (chuegou)   2015-12-12 04:25:00
第一題想到一種可能性...沒有加一個NULL當作結束位元?
作者: OPIV (Monitor)   2015-12-12 04:56:00
我覺得…先學好國文…囧…真的看不懂你想表達什麼
作者: james732 (好人超)   2015-12-12 09:36:00
所以你看到dh的值是…?需求是:只要取data[2]、data[0]出來做比較這樣的話unsigned int tmp = (dh[2] << 8) | dh[0]組合成一個int後再拿來比較?
作者: OPIV (Monitor)   2015-12-12 12:30:00
先把權重大的部分放進一個 int 裡面,然後左移這個 int,再把權重小的部分放也進去,組成一個完整的 intint 被拆成好幾段的話也是重複這個步驟
作者: Caesar08 (Caesar)   2015-12-12 13:11:00
data是一個array,data[5]是一個int,你一直說data[5],我以為你要比一個不存在的資料你圖片84行與90行沒甚麼問題(除了char轉int)乾脆直接dh[0]>dcc[0], dh[0]<dcc[1], dh[2]>dcc[0],dh[2]<dcc[1]這樣比較,但你要小心==的時候... [重要] 發文前務必閱讀:常見問題十三誡 第2點
作者: cyber9270 (cyber)   2015-12-13 08:08:00
陣列宣告成dh[2], 操作時用dh[2]的資料是啥?陣列指示數超過1不會讀到亂碼嗎?我是指21樓下面的程式

Links booklink

Contact Us: admin [ a t ] ucptt.com