Facebook
From Gentle Leopard, 6 Years ago, written in C.
Embed
Download Paste or View Raw
Hits: 263
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include<math.h>
  4. void DecToBin(int l)
  5. {
  6.     int i;
  7.     int length = 0 ;
  8.     int temp = l;
  9.     for(; 0<l; l=l/2)
  10.     {
  11.         length = length+ 1;
  12.     }
  13.  
  14.     char bin[length];
  15.  
  16.     for(i = 0; i<sizeof(bin); i ++ )
  17.     {
  18.         bin[i] = temp%2;
  19.         temp = temp /2;
  20.     }
  21.     i = length;
  22.     for(; 0<i; i--)
  23.     {
  24.  
  25.         printf("%d",bin[i-1]);
  26.     }
  27. }
  28. void BinToDec(int l)
  29. {
  30.     int i;
  31.  
  32.     int reszta = 0 ;
  33.     int decimal =0;
  34.  
  35.     for(i = 0 ; 0 < l; i++)
  36.     {
  37.         reszta = l%10;
  38.         decimal = decimal + reszta*pow(2,i);
  39.         l = l/10;
  40.     }
  41.     printf("Wartosc dziesietna to: %d ", decimal);
  42. }
  43.  
  44. void DecToHex(int l)
  45. {
  46.     int temp = l;
  47.     int i;
  48.     int length = 0 ;
  49.  
  50.     for(; 0<l; l=l/16)
  51.     {
  52.         length = length+ 1;
  53.     }
  54.  
  55.     char bin[length];
  56.  
  57.     for(i = 0; i<sizeof(bin); i ++ )
  58.     {
  59.         int reszta = temp%16;
  60.         if(reszta>=10)
  61.         {
  62.             reszta = 55 + reszta;
  63.         }
  64.         else
  65.             reszta = 48 + reszta;
  66.  
  67.         bin[i] = reszta;
  68.         temp = temp /16;
  69.     }
  70.     i = length;
  71.     for(; 0<i; i--)
  72.     {
  73.         printf("%c",bin[i-1]);
  74.     }
  75. }
  76. void HexToDec( char hex[])
  77. {
  78.  
  79.     int i;
  80.     int len = strlen(hex);
  81.     int dec  = 0;
  82.     for ( i = len-1; i >= 0; --i)
  83.     {
  84.         if (hex[i] < '0' || hex[i] > '9')
  85.         {
  86.             dec += (hex[i] - 55) * pow(16, len-1-i);
  87.         }
  88.         else
  89.         {
  90.             dec += (hex[i] - 48) * pow(16, len-1-i);
  91.         }
  92.     }
  93.  
  94.     printf("Wartosc dziesietna to: %d ", dec);
  95. }
  96. int main()
  97. {
  98.     printf("Co chcesz zrobic?\n1.Zamienic liczbe dziesietna na binarna\n2.Zamienic liczbe binarna na dziesietna\n3.Zamienic liczbe dziesietna na szestastkowa\n4.Zamienic liczbe binarna na dziesietna\n");
  99.     int number,l;
  100.     char hex[10];
  101.     scanf("%d", &number);
  102.     switch(number)
  103.     {
  104.     case 1:
  105.         printf("Podaj liczbe, ktora chcesz zamienic\n");
  106.         scanf("%d", &l);
  107.         DecToBin(l);
  108.         break;
  109.  
  110.     case 2:
  111.         printf("Podaj liczbe binarna, ktora chcesz zamienic\n");
  112.         scanf("%d", &l);
  113.         BinToDec(l);
  114.         break;
  115.     case 3:
  116.         printf("Podaj liczbe, ktora chcesz zamienic\n");
  117.         scanf("%d", &l);
  118.         DecToHex(l);
  119.         break;
  120.     case 4:
  121.         printf("Podaj liczbe w systemie szesnastkowym, ktora chcesz zamienic\n");
  122.         scanf("%s", &hex);
  123.         HexToDec(hex);
  124.         break;
  125.     }
  126.  
  127.     return 0;
  128. }
  129.