- 515 名前:デフォルトの名無しさん [2008/10/01(水) 20:34:11 ]
- floatのエンディアン変換が分からないのですが、教えてください。
typedef union { float f; unsigned char b[4]; } Endian32; float ConvertF32( void *inData ) { EndianF32 val; val.b[0] = ((Endian32 *)inData)->b[3]; val.b[1] = ((Endian32 *)inData)->b[2]; val.b[2] = ((Endian32 *)inData)->b[1]; val.b[3] = ((Endian32 *)inData)->b[0]; return val.f; } void test( float inVal ) { float ret = ConvertF32( &inVal ); fwrite( &ret, sizeof(float), 1, fp ); } こんな感じでやっています。 1.0を送ると、int型の1が何故か入ってしまいます。
|

|