ランダムな32ビットの文字列をとり、このビット文字列をfloatにしてC++
と宣言します。C++のバイナリ文字列から浮動小数点数を作る
例えば、文字列0.0111 1111.1000 0000 0000 0000 0000 000
は、1.5
に対応する浮動小数点数を私に与える必要があります。これは、IEEE 754-2008の1.5のF32定義です。最初の0平均+ ve、次の8は127-127 = 0の指数を与え、23ビットの仮数は.5
を与えます。
文字列がこれに適したデータ形式でない場合、私は提案を聞いてうれしいです。
実際、C++でランダムな浮動小数点数を作成したいのですが、どうすればよいか分かりません。私が見つけたソリューション(例えば、C++ random float number generation)は、ランダム整数ジェネレータを使ってRAND_MAX
で除算し、次にFLOAT_MAX
で乗算するか、何らかの方法で浮動小数点数を生成することを提案していますある一定の分布に従って。値が均等に分布している間は、これは私には良くないことです。これは大きな指数を持つより多くの浮動小数点を生成します。
基本的に、この質問が、C++のために:あなただけの指数分布山車を出してくれるRNGをしたい場合はConvert Double to Binary representation?
これを行うことができますあなたが望むすべてがランダムな浮動小数点数である場合は、参照します。http:/ /images/686353/c-random-float-number-generation – NathanOliver
'int32_t x =/*ランダム値* /; float f = *(float *)&x; '。これはいいアイデアだと言っているわけではなく、ルールを破ったりもしません。しかし、それを行うことができます。 –
std :: bitset、多分?また、全く別の2つの質問をしているようです。明確にできますか? – JETM