float の0.1の内部表現はたぶんこなぐあいでした
-1^(0) * 1+(0.5033165) * 2^(123-127)

#include <stdio.h>
main(){
   float f=0.1;
   int sisuubu;
   int kasuubu;
   int fugou;
   int *i;
   void *p;
   p=&f;
   i=p;
   fugou =( *i>>31) & 1;
   printf ("fugou = %d\n",fugou);
   sisuubu = (*i>>23) & 0xFF;
   printf ("sisuubu = %d\n",sisuubu);
   kasuubu = (*i)& ((1<<23)-1) ;
   printf ("kasuubu = %d\n",kasuubu);
   printf ("-1^(%d) * 1+(0.%d) * 2^(%d-127) =%f "
,fugou, kasuubu,sisuubu,f);
}