TI中文支持网
TI专业的中文技术问题搜集分享网站

float 变量内存值和watch expression 中不一样

float 变量 b.

在memory 中的值为

 

在watch expression 中的值却是:

程序是:

   asm(" MOVW DP, #0x305");
   asm(" MOV ACC, @0x03");
   asm(" SUB ACC, #32768");
   asm(" MOVL @0x34, ACC");

ma chunhong:

值没有错呀,浮点数占32位,所以menory的值是0000116ch,转换为float就是6.249791e-42

float 变量 b.

在memory 中的值为

 

在watch expression 中的值却是:

程序是:

   asm(" MOVW DP, #0x305");
   asm(" MOV ACC, @0x03");
   asm(" SUB ACC, #32768");
   asm(" MOVL @0x34, ACC");

10#:

回复 ma chunhong:

楼上正确,楼主也可以在watch expression中对值选择hex格式看看。

float 变量 b.

在memory 中的值为

 

在watch expression 中的值却是:

程序是:

   asm(" MOVW DP, #0x305");
   asm(" MOV ACC, @0x03");
   asm(" SUB ACC, #32768");
   asm(" MOVL @0x34, ACC");

Troublemaker:

回复 ma chunhong:

我的目的是显示成116C,请问,为什么会转换成6.249791e-42

?谢谢!

float 变量 b.

在memory 中的值为

 

在watch expression 中的值却是:

程序是:

   asm(" MOVW DP, #0x305");
   asm(" MOV ACC, @0x03");
   asm(" SUB ACC, #32768");
   asm(" MOVL @0x34, ACC");

Troublemaker:

回复 10#:

浮点数 116C 怎么算出是6.249791e-42?

内存中的数:0 000, 0000,0 000, 0000,0001,0001,0110,1100

符号位:0

幂:0-127=-127

尾数:1.000 0000 0001 0001 0110 1100

浮点数(1.000 0000 0001 0001 0110 11)*2^(-127)

算出来不等于6.249791e-42。请问正确算法

赞(0)
未经允许不得转载:TI中文支持网 » float 变量内存值和watch expression 中不一样
分享到: 更多 (0)