你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

IAR编译器赋值问题

[复制链接]
dkblue 提问时间:2018-7-7 15:40 /
没有赋值成功,这是怎么回事,求解
1.jpg
收藏 评论4 发布时间:2018-7-7 15:40

举报

4个回答
黑皮男 回答时间:2018-7-7 16:42:33
最好能够打印出来看,编译器优化后显示的值有时会和预期不一样

评分

参与人数 2ST金币 +2 蝴蝶豆 +3 收起 理由
zero99 + 3
MrJiu + 2 很给力!

查看全部评分

dkblue 回答时间:2018-7-7 17:42:02
黑皮男 发表于 2018-7-7 16:42
最好能够打印出来看,编译器优化后显示的值有时会和预期不一样

3Q  我试试
tyhjrwx2011 回答时间:2018-7-7 23:25:25
本帖最后由 tyhjrwx2011 于 2018-7-7 23:35 编辑

浮点数,内部存储是以IEEE754标准存储的,所以就是图中的数值了
目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和尾数来表示,底数定为2——即把一个浮点数表示为尾数乘以2的指数次方再添上符号。下面是具体的规格:
符号位 阶码 尾数 长度
float 1 8 23 32
double 1 11 52 64



32位的浮点数中:
S:浮点数的符号位,1 位。0表示正数,1表示负数。
M:尾数,23位。用小数表示,小数点在尾数域前面。
E:阶码,采用移码方式来表示。移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。采用这种方式时,将浮点数的指数真值e 变成阶码E 时,应将指数 e 加上一个固定的偏移值127(01111111),即 E=e+127


64位,同理,有兴趣自己推算一下
(以上99%的内容,来自百度,如有错误,无法负责)

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

MrJiu 回答时间:2018-7-9 09:22:47
2楼回答正确,用打印的方式,载线调试的时候,有些时候,值不是那么正确!!!

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版