#include <stdio.h>
#include <stdlib.h>

void expansion(long double f)
{
    int   n= sizeof(long double);
    char  *p;
    int   k, m, c=0;
    
    p= (char*)&f;
    
    printf("%10.4fL= ", f);
    for (k=n-1; k>=0; k--)
       {
        for (m= 0x80; m; m>>=1)
           {
            switch(c++)
              {
               case  1: putchar(' ');   break;     
               case 34: printf(" (1)"); break;     
               case 35: putchar('.');   break;
              }     
            putchar(p[k] & m ? '1' : '0');
           } 
       }
    putchar('\n');   
}
       

int main(void)
{
    long double f;

    printf("positivos\n");    
    for (f=1; f<16; f++)
       expansion(f);
    system("pause");
      
    printf("negativos\n");    
    for (f=-1; f>-16; f--)       
       expansion(f);
       
    printf("potencias positivas de 2\n");        
    for (f=1; f<256; f*=2)       
       expansion(f);
       
    printf("potencias negativas de 2\n");        
    for (f=1; f>1.0/256.0; f/=2)       
       expansion(f);
       
    system("PAUSE");
    return 0;
}
