找回密码
 立即注册

QQ登录

只需一步,快速开始

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

这个C语言语句为什么我不强制类型转换结果不对呢?

[复制链接]
ID:454366 发表于 2020-6-22 22:05 | 显示全部楼层 |阅读模式
如图红色箭头处为什么不强制类型转换得到的结果就不对呢
T.png
回复

使用道具 举报

ID:213173 发表于 2020-6-23 05:50 | 显示全部楼层
Value*500/4095 运算的中间结果大于65535部分和小数部分都会被抛弃。
回复

使用道具 举报

ID:147017 发表于 2020-6-23 09:46 | 显示全部楼层
int型,直接强制转换会抛弃越界数据
回复

使用道具 举报

ID:426861 发表于 2020-6-23 11:54 | 显示全部楼层
Value你开始定义的是无符号整型,结果你却想要浮点型的数据
回复

使用道具 举报

ID:454366 发表于 2020-6-23 18:39 | 显示全部楼层
假设开始Value=1000, 因为Value我定义的是无符整型那经过 Value = (1000 * 500) /4095运算结果应该等于122才对呀
回复

使用道具 举报

ID:454366 发表于 2020-6-23 18:44 | 显示全部楼层
wulin 发表于 2020-6-23 05:50
Value*500/4095 运算的中间结果大于65535部分和小数部分都会被抛弃。

假设一开始Value=1000,因为定义的Value是无符整型经过1000*500/4095运算结果应该是122才对呀
回复

使用道具 举报

ID:787594 发表于 2020-6-23 18:59 来自手机 | 显示全部楼层
应该是数据超过了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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