找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1298|回复: 6
收起左侧

C语言300*100/240 可以显示 300*1000/240无法显示 求助

[复制链接]
ID:241249 发表于 2022-4-23 22:05 | 显示全部楼层 |阅读模式
300*100/240 可以显示 125
300*1000/240无法显示 显示乱码


用的int来定义的变量

有大神么 帮帮忙~~

回复

使用道具 举报

ID:624769 发表于 2022-4-24 00:16 | 显示全部楼层
int 的划分根据系统,会有不同,  我觉得,你这里的int 应该是16位的, 所以 300*100 的时候是 30000 在范围内, 300*1000的时候300000 溢出了, 建议,要每改成 300*100/24  要么把类型改成 long 确保是32位。

评分

参与人数 1黑币 +5 收起 理由
weiwei850113 + 5 很给力!

查看全部评分

回复

使用道具 举报

ID:731755 发表于 2022-4-24 08:37 | 显示全部楼层
楼上的就是正确答案,之前已碰到同样问题了,一个师傅指点一下,改了就可以正常显示了

评分

参与人数 1黑币 +4 收起 理由
weiwei850113 + 4 赞一个!

查看全部评分

回复

使用道具 举报

ID:241249 发表于 2022-4-24 11:35 | 显示全部楼层
188610329 发表于 2022-4-24 00:16
int 的划分根据系统,会有不同,  我觉得,你这里的int 应该是16位的, 所以 300*100 的时候是 30000 在范围内 ...

改为了long 还是不行 ,改为long后还是计算*100可以计算 *1000不可以 求助~~
回复

使用道具 举报

ID:213173 发表于 2022-4-24 13:29 | 显示全部楼层
weiwei850113 发表于 2022-4-24 11:35
改为了long 还是不行 ,改为long后还是计算*100可以计算 *1000不可以 求助~~

强制转换数据类型
t3=(long)interData[0]*1000/interData[1];
回复

使用道具 举报

ID:883242 发表于 2022-4-24 17:22 | 显示全部楼层
试试300L*1000L/240L

我没有C51编译器,只能你自己试了。
回复

使用道具 举报

ID:624769 发表于 2022-4-24 23:10 | 显示全部楼层
weiwei850113 发表于 2022-4-24 11:35
改为了long 还是不行 ,改为long后还是计算*100可以计算 *1000不可以 求助~~

你用的什么编译器,keil2的话常量要加L后缀,keil4,keil5不用,其他编译器,看相关手册。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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