如何从double转换为signed short?

时间:2013-01-08 19:38:37

标签: c

将变量从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。

1 个答案:

答案 0 :(得分:0)

如果你想向零舍入,那就足够了

double myDouble = - 3.14;
short s = myDouble;

如果您要向负无穷大舍入,则只需添加floor

double myDouble = - 3.14;
short s = floor(myDouble);

在任何一种情况下,都不需要从doubleshort进行显式转换,但保留编译器不会发出警告可能是个好主意。

当然,您有责任确保原始值在short范围内。

如果这在某种程度上“不起作用”(无论这意味着什么),那么你使用的编译器必须被破坏。