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.
前提条件:
1、在函数中对浮点参数使用了乘法、除法、加减、sqrt、atan2f、cos运算
2、将浮点类型的计算结果强制转换为无符号整型
结果:
1、大部分情况下计算结果正常,正常指的是:1)浮点数据 < 0时,无符号整型 = 0;2)浮点数 >= 0时,无符号整型取整数部分。
2、极少数情况出现异常,异常时无符号整型只出现0和65535
提问:
1、在前提条件1中,在进行较多的浮点运算时,计算结果是否会卡死在一个异常的值?
2、在前提条件2中,在进行浮点强制转换整型时,是否有可能出现异常?
您好
针对您提出的问题,我们可以从以下几个方面进行分析:
在TMS320F28335这样的DSP(数字信号处理器)上执行浮点运算时,通常不会因为进行多次运算而“卡死”在一个异常的值,除非遇到了以下几种情况:
在将浮点类型转换为无符号整型时,确实有可能出现异常,尤其是当浮点数的值超出了无符号整型能表示的范围时。对于无符号整型(假设是16位),其范围是0到65535。如果浮点数的值小于0,在C语言中转换为无符号整型时,通常会将该负数视为无符号数的一个大正值(因为计算机内部使用二进制补码表示负数),但这通常不是您想要的结果。如果您的代码中确实看到了0和65535这两个值频繁出现,可能有以下几种原因: