搜索
bottom↓
回复: 11

请教坛友,这里是变量的问题还是公式的问题。

[复制链接]

出75入8汤圆

发表于 2019-6-11 16:37:27 | 显示全部楼层 |阅读模式
dataBUF_1[4]=49;
dataBUF_1[5]=50;
dataBUF_1[6]=51;
dataBUF_1[7]=52;

                         if(dataBUF_1[0]==0xfd)
                         {
                          if(dataBUF_1[1]==0x0b)
                          {
                                        cunchushu=((dataBUF_1[4]-48)*1000)+ ((dataBUF_1[5]-48)*100)+(dataBUF_1[6]-48)*10+(dataBUF_1[7]-48);
                                       
                       
                                }
                               
                               
                        }
          //cunchushu=1234;
上面这段程序,打开屏蔽的最后一行正确,屏蔽最后一行出错,也就是说变量在计算的过程中变了数字。打开屏蔽的最后一行cunchushu是对的,怎么验证都对。这里倒底是变量变了还是公式问题?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2019-6-11 16:40:58 | 显示全部楼层
dataBUF_1是char型?
估计到后面*1000时就溢出了,可写成 (unsigned long)dataBUF_1
也就是强制类型转换。

出75入8汤圆

 楼主| 发表于 2019-6-11 16:42:41 | 显示全部楼层
lcw_swust 发表于 2019-6-11 16:40
dataBUF_1是char型?
估计到后面*1000时就溢出了,可写成 (unsigned long)dataBUF_1
也就是强制类型转换。 ...

谢谢!可能是这里问题,之前没问题,就后来乘了1000后有问题,话说这个乘了1000还存在这个变量里面?

出0入0汤圆

发表于 2019-6-11 16:45:08 | 显示全部楼层
ZHAOBAO511 发表于 2019-6-11 16:42
谢谢!可能是这里问题,之前没问题,就后来乘了1000后有问题,话说这个乘了1000还存在这个变量里面? ...

具体的我也不清楚,根据经验,算式 x*y 的结果与 x 的类型相同,x为char那么结果也为char。

出75入8汤圆

 楼主| 发表于 2019-6-11 17:02:38 | 显示全部楼层
lcw_swust 发表于 2019-6-11 16:45
具体的我也不清楚,根据经验,算式 x*y 的结果与 x 的类型相同,x为char那么结果也为char。 ...

谢谢!找到原因了,缓存计数没清零。

出0入4汤圆

发表于 2019-6-11 17:05:52 | 显示全部楼层
楼主用的是汉语拼音大法

出75入8汤圆

 楼主| 发表于 2019-6-11 17:32:44 | 显示全部楼层
carefree1986 发表于 2019-6-11 17:05
楼主用的是汉语拼音大法

你厉害,这都被你看出来了,中英文都用。

出0入0汤圆

发表于 2019-6-11 17:41:47 | 显示全部楼层
lcw_swust 发表于 2019-6-11 16:40
dataBUF_1是char型?
估计到后面*1000时就溢出了,可写成 (unsigned long)dataBUF_1
也就是强制类型转换。 ...

我记得计算结果好像会提升到“cunchushu”的数据类型

出0入0汤圆

发表于 2019-6-11 17:51:06 | 显示全部楼层
lcw_swust 发表于 2019-6-11 16:45
具体的我也不清楚,根据经验,算式 x*y 的结果与 x 的类型相同,x为char那么结果也为char。 ...

https://blog.csdn.net/u010815257/article/details/50178499        c语言隐式转换规则

正确应该是,按参与运算的数据类型提升

出0入0汤圆

发表于 2019-6-11 22:16:20 来自手机 | 显示全部楼层
需要强制类型转换

出75入8汤圆

 楼主| 发表于 2019-6-12 08:39:52 | 显示全部楼层
flash3g 发表于 2019-6-11 17:51
https://blog.csdn.net/u010815257/article/details/50178499        c语言隐式转换规则

正确应该是,按参与运 ...

谢谢!cunchushu是INT的。

出75入8汤圆

 楼主| 发表于 2019-6-12 08:40:17 | 显示全部楼层

谢谢回答!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 16:42

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表