float
与えられたビットパターン(として提供される)でを取得するための高速な方法が必要int32_t
です。もちろん、コンパイラは構造全体を最適化する必要があります。単純な変換はキャストを行い、許可さreinterpret_cast<>
れていません...
質問する
803 次
2 に答える
2
完全に移植可能な唯一の方法はmemcpy
、バッファを経由することです:
static_assert(sizeof(float) == sizeof(int32_t), "!!");
char buf[sizeof(float)];
memcpy(buf, &i, sizeof(buf));
memcpy(&f, buf, sizeof(buf));
通常、バッファは省略できます。
static_assert(sizeof(float) == sizeof(int32_t), "!!");
memcpy(&f, &i, sizeof(float));
于 2013-02-13T14:14:11.313 に答える