浮動小数点型を直接符号なし整数に変換しようとしていますが、その代わりに、直接的に他のものにバイトをコピーするだけの、黙示的変換数(Cスタイルまたは静的キャストはありません)はありません。 Windows Visual Studio 2015では、浮動小数点数と符号なし整数のサイズが同じです(4バイト)ので、その点で問題はないと思います。 。 。私は解決策を考え出しましたが、私がしたいことをするためのより良い方法が必要になりました。C++ Visual Studioのfloatからunsigned intに直接バイトをコピーするには?
unsigned int x = 3;
float y = 2.4565;
*reinterpret_cast<float*>(&x) = y;
これは私が欲しいものを行い、存在する場合、私は、クロスプラットフォームのソリューションを好むだろう1075656524.
にXを設定します。タイプのサイズはプラットフォームによって異なる可能性があるので、不可能かもしれません。
編集:明確にするために、符号なし整数にコピーされたfloatのバイトをすべて変更しないでください。 floatに格納されているすべてのビットは、符号なし整数に格納する必要があります。また、memcpyを使用しないソリューションもありますか?非難された関数の使用を避けたい。
このコードには未定義の動作があります。代わりに 'memcpy'を使用してください。あなたは何を達成したいですか?なぜあなたはそのようなキャストをしたいのですか? – geza
[固定幅の整数](http://en.cppreference.com/w/cpp/types/integer)を参照して、さまざまなサイズの変数の問題を解決してください。 – user4581301
あなたは何を達成しようとしていますか?この「整数」はどのように使用していますか?整数形式ではありません。クロスプラットフォームを忘れないで、エンディアンも考慮する必要があります。 –