Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define MAX_ARRAY 31//!!MAXIMAL 31!!
- char ReturnValueToHex(int i)
- {
- /*
- Hexa-Dezimal System
- Codierungs Tabelle:
- 0 0 0
- 1 1 1
- 2 10 2
- 3 11 3
- 4 100 4
- 5 101 5
- 6 110 6
- 7 111 7
- 8 1000 8
- 9 1001 9
- 10 1010 a
- 11 1011 b
- 12 1100 c
- 13 1101 d
- 14 1110 e
- 15 1111 f
- */
- if(i == 0)
- {
- return '0';
- }else if(i == 1)
- {
- return '1';
- }else if(i == 2)
- {
- return '2';
- }else if(i == 3)
- {
- return '3';
- }else if(i == 4)
- {
- return '4';
- }else if(i == 5)
- {
- return '5';
- }else if(i == 6)
- {
- return '6';
- }else if(i == 7)
- {
- return '7';
- }else if(i == 8)
- {
- return '8';
- }else if(i == 9)
- {
- return '9';
- }else if(i == 10)
- {
- return 'A';
- }else if(i == 11)
- {
- return 'B';
- }else if(i == 12)
- {
- return 'C';
- }else if(i == 13)
- {
- return 'D';
- }else if(i == 14)
- {
- return 'E';
- }else if(i == 15)
- {
- return 'F';
- }
- return '0';
- }
- void IntToDualAndHex()
- {
- int i, k1, k2, a;
- short int b1;
- int j1[MAX_ARRAY + 1];
- char j2[MAX_ARRAY + 1];
- a = 1;
- b1 = 0;
- for(i=MAX_ARRAY - 1; i>0; i--) a *= 2;
- printf("Bitte gebe eine zahl ein [MAXIMUM IST %i]\n", a, a + 1);
- scanf("%i", &k1);
- if(k1 != a + 1){
- while(k1 > a)
- {
- printf("\nDie Zahl ist zu grosz! Bitte waehle eine zahl, welche kleiner als %i ist\n", a);
- scanf("%i", &k1);
- }
- printf("\n");
- k2 = k1;
- for(i=MAX_ARRAY; i>0; i--)
- {
- j1[i] = k1 % 2;
- k1 /=2;
- j2[i] = ReturnValueToHex(k2 % 16);
- k2 /=16;
- }
- for(i=1; i<=MAX_ARRAY; i++)
- {
- if(j1[i] == 0 && b1 == 0)
- { }else{
- printf("%i",j1[i]);
- b1 = 1;
- }
- }
- b1 = 0;
- printf("\n");
- for(i=1; i<=MAX_ARRAY; i++)
- {
- if(j2[i] == '0' && b1 == 0)
- {
- }else{
- printf("%c",j2[i]);
- b1 = 1;
- }
- }
- printf("\n");
- }
- }
- void DualToHexAndInt(){
- char s[MAX_ARRAY + 1];
- char s2[MAX_ARRAY + 1];
- short int i[MAX_ARRAY + 1];
- int i2, i3 = 1, i4 = 0, i5;
- short int b1 = 0;
- for(i2 = MAX_ARRAY;i2 >= 0;i2--)
- {
- s[i2] = '0';
- i[i2] = 2;
- }
- printf("bitte gebe die Binaere zahl ein\nBinaer-Zahl: ");
- scanf("%s",&s);
- for(i2 = 0;i2 < MAX_ARRAY;i2++)
- {
- if(-48 == (int)s[i2] - '0')break;
- i[i2] = (int) s[i2] - '0';
- }
- for(i2 = MAX_ARRAY;i2 >= 0;i2--)
- {
- if(i[i2] < 2)
- {
- i4 += i[i2] * i3;
- i3 *= 2;
- }
- }
- i5 = i4;
- for(i2 = MAX_ARRAY;i2 >= 0;i2--)
- {
- s2[i2] = ReturnValueToHex(i5 % 16);
- i5 /= 16;
- }
- printf("%d\n", i4);
- for(i2=1; i2<=MAX_ARRAY; i2++)
- {
- if(s2[i2] == '0' && b1 == 0)
- {
- }else{
- printf("%c",s2[i2]);
- b1 = 1;
- }
- }
- }
- void HexToDualAndInt(){
- printf("NICHT VERFUEGBAR");
- }
- void main()
- {
- char c;
- printf("Hallo und Herzlich willkommen im Hauptmenu!\n");
- do{
- printf("\n\n\n");
- printf("Optionen:\n");
- printf("a)\t Dezimal zu Binaer/Hex\n");
- printf("b)\t Binaer zu Dezimal/Hex \n");
- printf("c)\t Hex zu Dezimal/Hex\n");
- printf("q)\t Program ohne Aktion beenden\n");
- printf("\nBitte Tippe nun deine auswahl ein: ");
- scanf("%c", &c);
- if(c == 'a')
- {
- printf("\n\n\n");
- IntToDualAndHex();
- scanf("%c", &c);
- }else if(c == 'b')
- {
- printf("\n\n\n");
- DualToHexAndInt();
- scanf("%c", &c);
- }
- }while(c != 'q');
- }
Add Comment
Please, Sign In to add comment