|
CCS6,乘法运算不正确,printf不能处理大于65535的数据
[复制链接]
1、JTAG仿真状态下,tmp = a * b ;a、b为unit16,tmp为uint32,此结果无论a、b什么值,都等于0;然后把tmp变成long long型(64bit),还是一样的结果,不能理解!
但是这样可以得到正确结果:tmp=1; tmp=tmp*a; tmp=tmp*b;
2、printf函数用%u输出tmp=65536,其显示为1!再大些,索性就输出0。
然后想把大的数据强制为float型,再用%f显示,结果在ltoa转换函数中陷入死循环,很是奇怪,肯定是哪里没弄对。。。
求大神关注,是哪里没设置正确吗?
谢谢!
补充:
printf("SF: Detected %s with page size %u, total %f bytes\n",params->name, params->page_size, 3.123);
这样的情况,最后换成一个浮点常数显示,也陷入ltoa()死循环,哪里的问题?
|
|