ホーム > デベロッパ > BREW FAQ

BREW FAQ : 数値計算

乱数を生成するには?

乱数を生成するには、GETRAND 関数を使用します。

BREW では、シード付きの乱数を生成することはできませんが、SophiaFramework にはシード付きの乱数を生成するクラスが用意されています。

また、SophiaFramework では BREW 標準の乱数の他に LCG 法や MT 法が使えます。

[ BREW API のみを使用したコード ]

  byte rand;
  GETRAND(&rand, sizeof(byte));

[ SophiaFramework を使用したコード ]

  UInt32 rand = SFXBrewRandom::GetUInt32();
      

double 型の変数を int 型にキャストするには?

BREW 2.1 には、double 型の値を int 型の値に変換する関数はありません。

以下の手順に従って double 型の値を int 型の値に変換します。 これは、Qualcomm 社が推奨している方法です。

  1. FLOATTOWSTR を使用して double 型の数値をワイド文字列に変換します。
  2. WSTRTOSTR を使用してワイド文字列を char 文字列に変換します。
  3. ATOI を使用して char 文字列を int 型の数値に変換します。

※ BREW 2.1 では FLOATTOWSTR に不具合があり、整数部が 20 桁を超えるとメモリを破壊する恐れがあります。

SophiaFramework では Float32, Float64 型を使うことで通常の float, double と同じように浮動小数点を扱うことができます。

【 コード例 】

続きを読む »

      

デバッグ出力で浮動小数点数を出力するには?

デバッグ出力で浮動小数点数を出力する手順は以下のとおりです。

  1. FLOATTOWSTR 関数で浮動小数点数をワイド文字列に変換します。
  2. WSTRCOMPRESS 関数でワイド文字列を char 文字列に変換します。
  3. DBGPRINTF で char 文字列を出力します。