dkblue 发表于 2018-7-7 15:40:43

IAR编译器赋值问题

没有赋值成功,这是怎么回事,求解

黑皮男 发表于 2018-7-7 16:42:33

最好能够打印出来看,编译器优化后显示的值有时会和预期不一样

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%的内容,来自百度,如有错误,无法负责)

MrJiu 发表于 2018-7-9 09:22:47

2楼回答正确,用打印的方式,载线调试的时候,有些时候,值不是那么正确!!!
页: [1]
查看完整版本: IAR编译器赋值问题