This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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()死循环,哪里的问题?