三个变量分别定义如下:uint16_t a ,uint16_t b,float c
问题如下:
1.当一个整型与浮点数相加结果是浮点数还是整型?相加的时候是否要把整数b先强制转换为浮点数?乘法运算后因为要赋值给整型变量a,那么此时是否需要强制把乘积转换为整型数?
a=b+c;
因为c是浮点数,那么这时候是否需要把变量b先转换为float再与变量c相加?
2.当一个整型与浮点数相乘结果是浮点数还是整型?相乘的时候是否要把整数b先强制转换为浮点数?
a=b*c;
谢谢!
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.
三个变量分别定义如下:uint16_t a ,uint16_t b,float c
问题如下:
1.当一个整型与浮点数相加结果是浮点数还是整型?相加的时候是否要把整数b先强制转换为浮点数?乘法运算后因为要赋值给整型变量a,那么此时是否需要强制把乘积转换为整型数?
a=b+c;
因为c是浮点数,那么这时候是否需要把变量b先转换为float再与变量c相加?
2.当一个整型与浮点数相乘结果是浮点数还是整型?相乘的时候是否要把整数b先强制转换为浮点数?
a=b*c;
谢谢!
你好,因为你附上的芯片型号是F28027,也就是定点芯片。如果是定点芯片的话,整型和浮点型运算都是转换为IQ格式进行计算的,计算结果也是IQ格式
如果是在浮点芯片,那么整型b和浮点c的运算结果是浮点型,再将结果赋值给整型a的话应该会自动整数后面的小数部分,把整数赋值给a。
我在25us中断中的代码如下:
spwmiqvar.sina = IQSIN_A+_IQ(spwmiqvar.spwm_cnt*SIN_B);//
spwmiqvar.sinvale =_IQsin(spwmiqvar.sina);
spwmiqvar.sinb =_IQmpy(spwmiqvar.M_FACTOR,spwmiqvar.sinvale);
spwm_value=1000+1000*_IQtoF(spwmiqvar.sinb);
导致程序执行很慢 ,难道使用IQ还要设置什么?使用的过程中调用了fs_add28.asm和 fd_mpy28.asm 感觉程序一直在这两个文件当中
请问这怎么解决?
是不是要添加
这个文件?谢谢!