找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1469|回复: 6
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
ID:454366 发表于 2020-6-22 22:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如图红色箭头处为什么不强制类型转换得到的结果就不对呢

T.png (24.84 KB, 下载次数: 28)

T.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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你开始定义的是无符号整型,结果你却想要浮点型的数据
回复

使用道具 举报

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

使用道具 举报

6#
ID:454366 发表于 2020-6-23 18:44 | 只看该作者
wulin 发表于 2020-6-23 05:50
Value*500/4095 运算的中间结果大于65535部分和小数部分都会被抛弃。

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

使用道具 举报

7#
ID:787594 发表于 2020-6-23 18:59 来自手机 | 只看该作者
应该是数据超过了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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