2

将变量从 转换为 的最简单方法是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。

4

1 回答 1

0

如果你想四舍五入到零,这就足够了

double myDouble = - 3.14;
short s = myDouble;

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

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

在任何一种情况下,都不需要显式转换 from doubleto short,但保留它以防止编译器发出警告可能是个好主意。

当然,您有责任确保原始值在short.

如果这在应该的时候以某种方式“不起作用”(无论这意味着什么),那么您使用的编译器必须被破坏。

于 2013-01-08T19:43:59.717 回答