Advertisement
JuicyJuice1100

Untitled

Mar 1st, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.39 KB | None | 0 0
  1. #include "stdio.h"
  2. #include "string.h"
  3. #include "math.h"
  4.  
  5. #define MAX_BITS 32
  6. #define BASE 2
  7. #define BIAS 127
  8.  
  9. int main()
  10. {
  11.     char input_bits[MAX_BITS + 1];
  12.     int sinal, i, j, count = 0, sum = 0, expoente, absE;
  13.  
  14.     printf("enter IEEE 754 single-precision float in binary: \n");
  15.     scanf("%s", input_bits);
  16.  
  17.     sinal = input_bits[0] - '0';
  18.  
  19.     for(i = 8; i > 0; i--, count ++)
  20.     {
  21.         sum += (input_bits[i] - '0') * (int)(pow(BASE, count));
  22.     }
  23.  
  24.     expoente = sum - BIAS;
  25.     absE = abs(expoente);
  26.  
  27.     printf("sinal = %d\nexpoente = %d\nmantisa = ", sinal, expoente);
  28.  
  29.     for(i = 9; i <= MAX_BITS; i++)
  30.     {
  31.         printf("%c", input_bits[i]);
  32.     }
  33.  
  34.     printf("\n");
  35.  
  36.     if(sinal == 1)
  37.     {
  38.         printf("-");
  39.     }
  40.  
  41.     if(expoente < 0)
  42.     {
  43.         printf("0.1");
  44.         for(i = absE - 1; i > 0; i--)
  45.         {
  46.             printf("0");
  47.         }
  48.         for(i = 9; i <= MAX_BITS; i++)
  49.         {
  50.             printf("%c", input_bits[i]);
  51.         }
  52.     }
  53.     if(expoente > 0)
  54.     {
  55.         printf("1");
  56.         j = 9;
  57.         for(i = 9; i < MAX_BITS && absE > 0; i++)
  58.         {
  59.             printf("%c", input_bits[i]);
  60.             absE--;
  61.             j++;
  62.         }
  63.  
  64.         printf(".");
  65.         printf("(%d %d)", i,j);
  66.         printf("%s\n", input_bits);
  67.  
  68.         for(i = j; i <= MAX_BITS; i++);
  69.         {
  70.             printf("%d\n", MAX_BITS);
  71.             printf("hello\n");
  72.             printf("%c", input_bits[i]);
  73.         }
  74.     }
  75.     if(expoente == 0)
  76.     {
  77.         printf("0.");
  78.         for(i = 9; i <= MAX_BITS; i++)
  79.         {
  80.             printf("%c", input_bits[i]);
  81.         }
  82.     }
  83.     printf("\n");
  84.     return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement