Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.20 KB | None | 0 0
  1. //Arkadiusz Kałużny nr 219527 Semestr:4 Rok akademicki 2015/2016//
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5.                                        
  6. int main(int argc, char *argv[]) {
  7.    
  8.     float c=0;
  9.     int f=0;
  10.     int zero=0;
  11.     int k=1;
  12.     int s=0;
  13.     float d=0;
  14.     float e=0;
  15.     int tm, pod, a, b, i, eplus, bity, ef, bias, elicznik, ebinar;
  16.     float tp, ulamek, suma;
  17.     int sumaa;
  18.    
  19.     printf ("wprowadz liczbe podstawy\n");
  20.     scanf("%d", &pod);
  21.     printf("wprowadz liczbe ktora chcesz zamienic\n");
  22.     scanf("%f", &tp);
  23.     printf("wprowadz liczbe bitow\n");
  24.     scanf("%d", &bity);
  25.    
  26.     if(tp < 0) {
  27.         s = 1;
  28.         tp = tp * (-1);
  29.     }
  30.    
  31.     tm = (int) tp;
  32.     ulamek = tp - (float) tm;
  33.  
  34.     for(i = 0; i <= 19; i++) {
  35.         if(tm == 0)
  36.             break;
  37.  
  38.         a = tm % 2;
  39.         c = c + a * (pow(10, i));
  40.         b = tm / 2;
  41.         tm = tm / 2;
  42.     }
  43.  
  44.     printf ("\n liczba rzeczywista w ukladzie pozycyjnym o podstawie 10: ");
  45.     printf ("%f", tp*(-1));
  46.    
  47.     for(i = 1; i <= 19; i++) {
  48.         if(ulamek == 0)
  49.             break;
  50.    
  51.         e = ulamek * 2;
  52.        
  53.         if(e >= 1) {
  54.             d = d + 1 * (pow(10, (-i)));
  55.             e = e - 1;
  56.             k = k + 1;
  57.         }
  58.  
  59.         ulamek = e;
  60.     }
  61.  
  62.     suma = c + d;
  63.     printf ("\n Liczba rzeczywista w ukladzie pozycyjnym o podstawie 2: %f", suma * (-1));
  64.    
  65.     for(i = 0; i <= 10; i++) {
  66.         if(c > 2){
  67.             c = c / 10;
  68.             f = f + 1;
  69.         }
  70.     }
  71.    
  72.     d=d/(1*pow(10,f));
  73.     suma=c+d;
  74.     printf ("\n Mantysa %f", suma);
  75.     ef=f+k;
  76.     bias=(pow(2,(ef-1)))-1;
  77.     printf ("\n Wartosc przesuniecia BIAS : %d", bias);
  78.     eplus=f+bias;
  79.     printf ("\n Liczba bitow cechy e :  %d", eplus);
  80.     ebinar=0;
  81.     for(i = 0; i <= 19; i++) {
  82.         if(eplus == 0) {
  83.             elicznik = i;
  84.             break;
  85.         }
  86.  
  87.         a = eplus % 2;
  88.         ebinar = ebinar + a * (pow(10, i));
  89.         b = eplus / 2;
  90.         eplus = eplus / 2;
  91.     }
  92.    
  93.     printf (" \n Liczba rzeczywista na reprezentacje zmiennopoycyjna w znormalizowanym formacie IEE-754: \n");
  94.     printf ("\n %d ", s);
  95.     printf ("%d ", ebinar);
  96.     suma = suma - 1;
  97.     suma = suma * (pow(10, 6));
  98.     sumaa = (int) suma;
  99.  
  100.     if(sumaa < 100000)
  101.         printf("0");
  102.    
  103.     if(sumaa<10000)
  104.         printf("0");
  105.    
  106.     if(sumaa<1000)
  107.         printf("0");
  108.    
  109.     if(sumaa<100)
  110.         printf("0");
  111.    
  112.     if(sumaa<10)
  113.         printf("0");
  114.    
  115.     printf("%d", sumaa);
  116.  
  117.     bity = bity - 1 - ef - elicznik;
  118.     for(i = bity; i > 1; i--)
  119.         printf("0");
  120.  
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement