4
if (abs(u) > Vdc)
    u = Vdc*((u > 0) - (u < 0));

このコードは、if 条件に入るとどうなるかを考慮して C で書かれています。Vdc = 24; 説明のために u の任意の値を考慮する

4

4 に答える 4

2

これは関数をモデル化する手法です

    |0,  if u = 0
 f= |1,  if u > 0
    |-1, if u < 0

この比較を行うためにif句を使用することを避け、そのように評価します

//For positive values of u 
(u>0) - (u<0) = 1 - 0 = 1
//For negative values of u
(u>0) - (u<0) = 0 - 1 = -1
//For u = 0
(u>0) - (u<0) = 0 - 0 = 0
于 2015-04-08T18:30:36.547 に答える
2

これは数学関数です符号 はその値です

  1. u > 0 の場合は 1
  2. u = 0 の場合は 0
  3. u < 0 の場合 -1

これがどのように機能するかです:

C 標準セクション 6.5.8 関係演算子による

指定されたリレーションが true の場合は 1 を返し、false の場合は 0 を返します。結果は int 型です。

u が 0 より大きい場合u > 0は 1 をu < 0返し、0を返します。1-0は 1 です。たとえば、u0 より大きいものは 1 に変換されます。同様に、u0 より小さいものはすべて -1 に変換されます。

于 2015-04-08T18:31:06.470 に答える