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 に答える