Packing/unpacking binary data in C - doubles, 64 bits

Michael ODonnell michael.odonnell at comcast.net
Thu Sep 10 22:01:41 EDT 2009



> Any suggestions to look for a 2^53 type problem?

Well, just for fun, how about going back to basics - what does this
little program generate on all the systems in question?


#include "stdio.h"

main( int   argc,
      char *argv[] )
{
    printf( "sizeof(              double) %2u\n", sizeof(              double) );
    printf( "sizeof(              float)  %2u\n", sizeof(              float)  );
    printf( "sizeof(long          double) %2u\n", sizeof(long          double) );
    printf( "sizeof(long signed   long)   %2u\n", sizeof(long signed   long)   );
    printf( "sizeof(long unsigned long)   %2u\n", sizeof(long unsigned long)   );
    printf( "sizeof(     signed   char)   %2u\n", sizeof(     signed   char)   );
    printf( "sizeof(     signed   long)   %2u\n", sizeof(     signed   long)   );
    printf( "sizeof(     signed   short)  %2u\n", sizeof(     signed   short)  );
    printf( "sizeof(     unsigned char)   %2u\n", sizeof(     unsigned char)   );
    printf( "sizeof(     unsigned long)   %2u\n", sizeof(     unsigned long)   );
    printf( "sizeof(     unsigned short)  %2u\n", sizeof(     unsigned short)  );
}



More information about the gnhlug-discuss mailing list