整数でfloatを計算する標準化された方法はどのようになっていますか?

oxidafo

これがCでどのように計算されるか知っている人はいますか?

uint8_t samplerate = 200;
uint8_t Result;
Result = 0.5 * samplerate;

さて、問題は0.5が浮動小数点数とsamplerate整数であるということです。Result0.5は整数に変換されるため、0(Result = 0 * 200 = 0)に丸められるため、0のいずれかになりますまたはResult、コンパイラが最初に0.5を認識samplerateし、float(Result = 0.5 * 200 = 100)に変換するため、100になる可能性があります

コンパイラがこれらの計算を処理する方法は標準化されていますか?つまり、コンパイラは最初に左端(この場合は0.5)の変数を調べて、もう一方をこれに変換しますか、それとも右端(samplerate)の変数を調べて、他の変数をこれに変換しますか?

私はこの問題をどのように解決できるかを知っていますが、これがC標準化されている場合、一般的な答えを探し、そのような方程式をどのように計算しますか?

dbush

さまざまなタイプの数値を式で組み合わせると、通常の算術変換が行われます。これは、どのオペランドをどのタイプに変換するかを指示する一連のルールです。

これらの変換は、C標準のセクション6.3.1.8で詳しく説明されています。

算術型のオペランドを期待する多くの演算子は、同様の方法で変換を引き起こし、結果型を生成します。目的は、オペランドと結果の共通の実数型を決定することです。指定されたオペランドについて、各オペランドは、型ドメインを変更せずに、対応する実数型が共通実数型である型に変換されます。特に明記されていない限り、共通の実数型は、結果の対応する実数型でもあります。その型ドメインは、オペランドが同じ場合はオペランドの型ドメインであり、それ以外の場合は複素数です。このパターンは、通常の算術変換と呼ばれます。

  • まず、いずれかのオペランドの対応する実数型がlong doubleの場合、もう一方のオペランドは、型ドメインを変更せずに、対応する実数型がlongdoubleの型に変換されます。
  • それ以外の場合、いずれかのオペランドの対応する実数型がdoubleの場合、もう一方のオペランドは、型ドメインを変更せずに、対応する実数型がdoubleである型に変換されます。
  • それ以外の場合、いずれかのオペランドの対応する実数型がfloatの場合、もう一方のオペランドは、型ドメインを変更せずに、対応する実数型がfloatである型に変換されます。
  • それ以外の場合、整数昇格は両方のオペランドで実行されます。次に、プロモートされたオペランドに次のルールが適用されます。
    • 両方のオペランドのタイプが同じである場合、それ以上の変換は必要ありません。
    • それ以外の場合、両方のオペランドが符号付き整数型であるか、両方が符号なし整数型である場合、整数変換ランクが小さい方のオペランドは、ランクが大きい方のオペランドの型に変換されます。
    • それ以外の場合、符号なし整数型のオペランドのランクが他のオペランドの型のランク以上の場合、符号付き整数型のオペランドは符号なし整数型のオペランドの型に変換されます。
    • それ以外の場合、符号付き整数型のオペランドの型が符号なし整数型のオペランドの型のすべての値を表すことができる場合、符号なし整数型のオペランドは符号付き整数型のオペランドの型に変換されます。
    • それ以外の場合、両方のオペランドは、符号付き整数型のオペランドの型に対応する符号なし整数型に変換されます。

特に太字の段落に注意してください。これがあなたのケースに当てはまります。

浮動小数点定数0.5は型を持っているdoubleので、他のオペランドの値は型double変換され、乗算演算子の結果*は型を持ちdoubleます。次に、この結果はタイプの変数に割り当てられるuint8_tため、double値は割り当てのためにこのタイプに変換されます。

したがって、この場合Result、値は100になります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

この計算を実行して標準出力に出力するにはどうすればよいですか?

分類Dev

すでに計算された標準誤差値を棒グラフ(ggplot)の各棒に追加するにはどうすればよいですか?

分類Dev

UILabelのさまざまな切り捨てドット文字を標準化するにはどうすればよいですか?

分類Dev

標準偏差の計算-私は正しいアプローチに従っていますか?SDパーセンテージを見つけるにはどうすればよいですか?

分類Dev

Excel VBAを使用して、希望する範囲のセルで標準偏差を計算するにはどうすればよいですか?

分類Dev

SQLで日付範囲にわたって累積計算を実行するにはどうすればよいですか?(たとえば、01の計算では01のデータが使用され、02では01と02が使用されます)。

分類Dev

dequeはどのように償却された一定の時間計算量を持っていますか

分類Dev

amまたはpmのないすべての数値を標準の文字列に置き換えるにはどうすればよいですか?

分類Dev

SLURMから詳細なジョブ実行情報を取得するにはどうすればよいですか(たとえば、LSFによって「標準出力」用に生成されたものなど)?

分類Dev

アイテムが正当化されたままになっているかどうかをテストするにはどうすればよいですか?

分類Dev

パンダ(.resample)によって計算された週平均値の一部を削除するにはどうすればよいですか?

分類Dev

Google CloudBuildまたはGoogleApp Engine標準環境の他の方法を使用して環境変数を設定するにはどうすればよいですか?

分類Dev

RでIDの長さが異なる個人によってグループ化された2つの座標列間の距離を計算します

分類Dev

C ++またはJavaで分散、中央値、標準偏差をどのように計算しますか?

分類Dev

最もエレガントなc ++の方法で、すでに標準色が事前定義されているカラークラスを設計するにはどうすればよいですか?

分類Dev

計算された列に基づいてmysqlの結果をグループ化するにはどうすればよいですか?

分類Dev

標準的な方法で先頭/末尾の空白を削除するにはどうすればよいですか?

分類Dev

クラスター化された標準エラーでlm_robust()の後に限界効果を取得するにはどうすればよいですか?

分類Dev

X座標でソートされた点のセットの凸包をO(n)時間で計算するにはどうすればよいですか?

分類Dev

Rの場所と緯度で(標準降水量指数を計算する)thornthwaite関数を実行するにはどうすればよいですか?

分類Dev

整数を挿入するたびにEditTextに挿入する整数の合計を計算するにはどうすればよいですか?

分類Dev

Rに標準化された係数を追加して、異なる独立変数と従属変数を使用して複数の線形回帰を実行するにはどうすればよいですか?

分類Dev

これらの出力された座標を標準の座標に変換するにはどうすればよいですか?

分類Dev

標準偏差が別の量の関数である場合、正規分布を計算するにはどうすればよいですか?

分類Dev

一見ランダムな特定の値が与えられている初期化された整数を停止するにはどうすればよいですか?

分類Dev

C ++で符号付き整数と符号なし整数の誤った減算を検出するにはどうすればよいですか?

分類Dev

加重標準誤差を計算して棒グラフにプロットするにはどうすればよいですか?

分類Dev

母標準偏差の代わりにサンプル標準偏差を計算するためにコードを変更するにはどうすればよいですか?

分類Dev

Rの標準偏差を含む2つの値の差を計算するにはどうすればよいですか?

Related 関連記事

  1. 1

    この計算を実行して標準出力に出力するにはどうすればよいですか?

  2. 2

    すでに計算された標準誤差値を棒グラフ(ggplot)の各棒に追加するにはどうすればよいですか?

  3. 3

    UILabelのさまざまな切り捨てドット文字を標準化するにはどうすればよいですか?

  4. 4

    標準偏差の計算-私は正しいアプローチに従っていますか?SDパーセンテージを見つけるにはどうすればよいですか?

  5. 5

    Excel VBAを使用して、希望する範囲のセルで標準偏差を計算するにはどうすればよいですか?

  6. 6

    SQLで日付範囲にわたって累積計算を実行するにはどうすればよいですか?(たとえば、01の計算では01のデータが使用され、02では01と02が使用されます)。

  7. 7

    dequeはどのように償却された一定の時間計算量を持っていますか

  8. 8

    amまたはpmのないすべての数値を標準の文字列に置き換えるにはどうすればよいですか?

  9. 9

    SLURMから詳細なジョブ実行情報を取得するにはどうすればよいですか(たとえば、LSFによって「標準出力」用に生成されたものなど)?

  10. 10

    アイテムが正当化されたままになっているかどうかをテストするにはどうすればよいですか?

  11. 11

    パンダ(.resample)によって計算された週平均値の一部を削除するにはどうすればよいですか?

  12. 12

    Google CloudBuildまたはGoogleApp Engine標準環境の他の方法を使用して環境変数を設定するにはどうすればよいですか?

  13. 13

    RでIDの長さが異なる個人によってグループ化された2つの座標列間の距離を計算します

  14. 14

    C ++またはJavaで分散、中央値、標準偏差をどのように計算しますか?

  15. 15

    最もエレガントなc ++の方法で、すでに標準色が事前定義されているカラークラスを設計するにはどうすればよいですか?

  16. 16

    計算された列に基づいてmysqlの結果をグループ化するにはどうすればよいですか?

  17. 17

    標準的な方法で先頭/末尾の空白を削除するにはどうすればよいですか?

  18. 18

    クラスター化された標準エラーでlm_robust()の後に限界効果を取得するにはどうすればよいですか?

  19. 19

    X座標でソートされた点のセットの凸包をO(n)時間で計算するにはどうすればよいですか?

  20. 20

    Rの場所と緯度で(標準降水量指数を計算する)thornthwaite関数を実行するにはどうすればよいですか?

  21. 21

    整数を挿入するたびにEditTextに挿入する整数の合計を計算するにはどうすればよいですか?

  22. 22

    Rに標準化された係数を追加して、異なる独立変数と従属変数を使用して複数の線形回帰を実行するにはどうすればよいですか?

  23. 23

    これらの出力された座標を標準の座標に変換するにはどうすればよいですか?

  24. 24

    標準偏差が別の量の関数である場合、正規分布を計算するにはどうすればよいですか?

  25. 25

    一見ランダムな特定の値が与えられている初期化された整数を停止するにはどうすればよいですか?

  26. 26

    C ++で符号付き整数と符号なし整数の誤った減算を検出するにはどうすればよいですか?

  27. 27

    加重標準誤差を計算して棒グラフにプロットするにはどうすればよいですか?

  28. 28

    母標準偏差の代わりにサンプル標準偏差を計算するためにコードを変更するにはどうすればよいですか?

  29. 29

    Rの標準偏差を含む2つの値の差を計算するにはどうすればよいですか?

ホットタグ

アーカイブ