Guest User

Untitled

a guest
Feb 21st, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.30 KB | None | 0 0
  1. #include <stdio.h>
  2. #define MAX_ARRAY 31//!!MAXIMAL 31!!
  3.  
  4. char ReturnValueToHex(int i)
  5. {
  6.     /*
  7.     Hexa-Dezimal System
  8.     Codierungs Tabelle:
  9.  
  10.     0    0       0
  11.     1    1       1
  12.     2    10      2
  13.     3    11      3
  14.     4    100     4
  15.     5    101     5
  16.     6    110     6
  17.     7    111     7
  18.     8    1000    8
  19.     9    1001    9
  20.     10   1010    a
  21.     11   1011    b
  22.     12   1100    c
  23.     13   1101    d
  24.     14   1110    e
  25.     15   1111    f
  26.     */
  27.     if(i == 0)
  28.     {
  29.         return '0';
  30.     }else if(i == 1)
  31.     {
  32.         return '1';
  33.     }else if(i == 2)
  34.     {
  35.         return '2';
  36.     }else if(i == 3)
  37.     {
  38.         return '3';
  39.     }else if(i == 4)
  40.     {
  41.         return '4';
  42.     }else if(i == 5)
  43.     {
  44.         return '5';
  45.     }else if(i == 6)
  46.     {
  47.         return '6';
  48.     }else if(i == 7)
  49.     {
  50.         return '7';
  51.     }else if(i == 8)
  52.     {
  53.         return '8';
  54.     }else if(i == 9)
  55.     {
  56.         return '9';
  57.     }else if(i == 10)
  58.     {
  59.         return 'A';
  60.     }else if(i == 11)
  61.     {
  62.         return 'B';
  63.     }else if(i == 12)
  64.     {
  65.         return 'C';
  66.     }else if(i == 13)
  67.     {
  68.         return 'D';
  69.     }else if(i == 14)
  70.     {
  71.         return 'E';
  72.     }else if(i == 15)
  73.     {
  74.         return 'F';
  75.     }
  76.     return '0';
  77. }
  78.  
  79. void IntToDualAndHex()
  80. {
  81.         int i, k1, k2, a;
  82.         short int b1;
  83.         int j1[MAX_ARRAY + 1];
  84.         char j2[MAX_ARRAY + 1];
  85.         a = 1;
  86.         b1 = 0;
  87.         for(i=MAX_ARRAY - 1; i>0; i--) a *= 2;
  88.    
  89.         printf("Bitte gebe eine zahl ein [MAXIMUM IST %i]\n", a, a + 1);
  90.         scanf("%i", &k1);
  91.         if(k1 != a + 1){
  92.             while(k1 > a)
  93.             {
  94.                 printf("\nDie Zahl ist zu grosz! Bitte waehle eine zahl, welche kleiner als %i ist\n", a);
  95.                 scanf("%i", &k1);
  96.             }
  97.             printf("\n");
  98.             k2 = k1;
  99.  
  100.  
  101.             for(i=MAX_ARRAY; i>0; i--)
  102.             {
  103.                 j1[i] = k1 % 2;
  104.                 k1 /=2;
  105.                 j2[i] = ReturnValueToHex(k2 % 16);
  106.                 k2 /=16;
  107.             }
  108.             for(i=1; i<=MAX_ARRAY; i++)
  109.             {
  110.                 if(j1[i] == 0 && b1 == 0)
  111.                 {   }else{
  112.                     printf("%i",j1[i]);
  113.                     b1 = 1;
  114.                 }
  115.  
  116.             }
  117.             b1 = 0;
  118.             printf("\n");
  119.             for(i=1; i<=MAX_ARRAY; i++)
  120.             {
  121.                 if(j2[i] == '0' && b1 == 0)
  122.                 {
  123.  
  124.                 }else{
  125.                     printf("%c",j2[i]);
  126.                     b1 = 1;
  127.                 }
  128.  
  129.             }
  130.    
  131.             printf("\n");
  132.         }
  133. }
  134.  
  135. void DualToHexAndInt(){
  136.     char s[MAX_ARRAY + 1];
  137.     char s2[MAX_ARRAY + 1];
  138.     short int i[MAX_ARRAY + 1];
  139.     int i2, i3 = 1, i4 = 0, i5;
  140.     short int b1 = 0;
  141.     for(i2 = MAX_ARRAY;i2 >= 0;i2--)
  142.     {
  143.         s[i2] = '0';
  144.         i[i2] = 2;
  145.     }
  146.     printf("bitte gebe die Binaere zahl ein\nBinaer-Zahl: ");
  147.     scanf("%s",&s);
  148.  
  149.     for(i2 = 0;i2 < MAX_ARRAY;i2++)
  150.     {
  151.         if(-48 == (int)s[i2] - '0')break;
  152.         i[i2] = (int) s[i2] - '0';
  153.     }
  154.  
  155.     for(i2 = MAX_ARRAY;i2 >= 0;i2--)
  156.     {
  157.         if(i[i2] < 2)
  158.         {
  159.             i4 += i[i2] * i3;
  160.             i3 *= 2;
  161.  
  162.         }
  163.     }
  164.     i5 = i4;
  165.     for(i2 = MAX_ARRAY;i2 >= 0;i2--)
  166.     {
  167.         s2[i2] = ReturnValueToHex(i5 % 16);
  168.         i5 /= 16;
  169.     }
  170.     printf("%d\n", i4);
  171.                
  172.     for(i2=1; i2<=MAX_ARRAY; i2++)
  173.     {
  174.         if(s2[i2] == '0' && b1 == 0)
  175.         {
  176.  
  177.         }else{
  178.             printf("%c",s2[i2]);
  179.             b1 = 1;
  180.         }
  181.     }
  182. }
  183.  
  184. void HexToDualAndInt(){
  185.     printf("NICHT VERFUEGBAR");
  186. }
  187.  
  188. void main()
  189. {
  190.     char c;
  191.     printf("Hallo und Herzlich willkommen im Hauptmenu!\n");
  192.     do{
  193.  
  194.         printf("\n\n\n");
  195.     printf("Optionen:\n");
  196.     printf("a)\t Dezimal zu Binaer/Hex\n");
  197.     printf("b)\t Binaer zu Dezimal/Hex \n");
  198.     printf("c)\t Hex zu Dezimal/Hex\n");
  199.     printf("q)\t Program ohne Aktion beenden\n");
  200.     printf("\nBitte Tippe nun deine auswahl ein: ");
  201.     scanf("%c", &c);
  202.     if(c == 'a')
  203.     {
  204.         printf("\n\n\n");
  205.         IntToDualAndHex();
  206.         scanf("%c", &c);
  207.     }else if(c == 'b')
  208.     {
  209.         printf("\n\n\n");
  210.         DualToHexAndInt();
  211.         scanf("%c", &c);
  212.     }
  213.     }while(c != 'q');
  214.    
  215. }
Add Comment
Please, Sign In to add comment