将变量从double
转换为signed short
的最简单方法是什么?
我是DSP的初学者。在其他C语言环境中,我以下列方式完成了这项任务:
double myDouble = - 3.14;
myDouble = floor(myDouble);
signed short = (signed short) myDouble;
令人惊讶的是,这对于VisualDSP ++中的负数不起作用,但它仍然可以编译。
我正在使用ADSP-BF548 EZ-KIT LITE(blackfin)和编程环境VisualDSP ++ 5.0。
答案 0 :(得分:0)
如果你想向零舍入,那就足够了
double myDouble = - 3.14;
short s = myDouble;
如果您要向负无穷大舍入,则只需添加floor
double myDouble = - 3.14;
short s = floor(myDouble);
在任何一种情况下,都不需要从double
到short
进行显式转换,但保留编译器不会发出警告可能是个好主意。
当然,您有责任确保原始值在short
范围内。
如果这在某种程度上“不起作用”(无论这意味着什么),那么你使用的编译器必须被破坏。