[问题]阵列比较及型态转换疑问

楼主: 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