C Programm zur Umrechnung Dezi -> Dual

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • C Programm zur Umrechnung Dezi -> Dual

    Hallo Leute,

    vorweg wollte ich an dieser Stelle allen ein Frohes und Gesundes neues Jahr 2009 wünschen.

    problem gelöst :D

    Quellcode

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <math.h>
    4. #include <string.h>
    5. int main(int argc, char *argv[])
    6. {
    7. int iDezimal, i;
    8. int iRest;
    9. int iBasis=2;
    10. char szDual[9];
    11. char cAbfrage = 'j';
    12. do{ //start do-while (Wiederholen?)
    13. /* einlesen der Dezimalzahl */
    14. do
    15. {
    16. printf("Bitte geben Sie ihre Dezimalzahl ein (zwischen 0 und 255):\n");
    17. scanf("%i",&iDezimal);
    18. fflush(stdin);
    19. puts("");
    20. if ((iDezimal < 0) || (iDezimal > 255))
    21. {
    22. printf("falsche Eingabe\n");
    23. }
    24. } while ((iDezimal < 0) || (iDezimal > 255));
    25. /* Umrechnung */
    26. for (i = 0;i < 8;i++)
    27. {
    28. printf("%i : %i ",iDezimal, iBasis);
    29. iRest = iDezimal;
    30. iDezimal = iDezimal/iBasis;
    31. iRest = iRest - (iDezimal * iBasis);
    32. szDual[7-i] = (iRest) ? '1':'0';
    33. szDual[8] = '\0';
    34. printf("= %i Rest %i\n", iDezimal, iRest);
    35. } //end for
    36. printf("%s",szDual);
    37. puts("");
    38. printf("Wiederholen (J)a/(N)ein ?");
    39. scanf("%c",&cAbfrage);
    40. fflush(stdin);
    41. }while((cAbfrage == 'j')||(cAbfrage == 'J')||(cAbfrage == '\n')); //end do-while Schleife
    42. while((cAbfrage != 'j')&&(cAbfrage != 'J')&&(cAbfrage != '\n')){
    43. return 0;
    44. }//end main
    45. }//end while welche das Programm beendet
    Alles anzeigen

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von suchti ()

  • Hi,

    habe mit ein Freund das anders gelöst, jedoch soll ich das Ergebnis nicht als Zahl sondern String ausgeben, vielleicht kannst mir da etwas helfen.

    hier mal der neue Code. Hoffe das passt so von der Formatierung.

    Quellcode

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <math.h>
    4. #include <string.h>
    5. int main(int argc, char *argv[])
    6. {
    7. int iDezimal, i, j;
    8. int iErgebnis, iRest;
    9. int iBasis=2;
    10. int szDual[8];
    11. /* einlesen der Dezimalzahl */
    12. do
    13. {
    14. printf("Bitte geben Sie ihre Dezimalzahl ein (zwischen 0 und 255):\n");
    15. scanf("%i",&iDezimal);
    16. fflush(stdin);
    17. puts("");
    18. if ((iDezimal < 0) || (iDezimal > 255))
    19. {
    20. printf("falsche Eingabe\n");
    21. }
    22. } while ((iDezimal < 0) || (iDezimal > 255));
    23. /* Umrechnung */
    24. for (i = 0;i < 8;i++)
    25. {
    26. printf("%i : %i ",iDezimal, iBasis);
    27. iRest = iDezimal;
    28. iDezimal = iDezimal/iBasis;
    29. iRest = iRest - (iDezimal * iBasis);
    30. szDual[i] = iRest;
    31. iErgebnis = iDezimal+iRest;
    32. printf("= %i Rest %i\n", iErgebnis, iRest);
    33. } //end for
    34. /* Binärzahl umdrehen und rückwerts ausgeben */
    35. i = 7;
    36. for (i = 7; i>=0;i--)
    37. {
    38. printf("%d", szDual[i]);
    39. }
    40. printf("\n");
    41. system("PAUSE");
    42. return 0;
    43. }//end main
    Alles anzeigen
  • du machst das VIEL zu kompliziert...
    ich hab das ganze mal in kleiner gemacht:

    Quellcode

    1. #include <stdio.h>
    2. void dec2bin(const unsigned char zahl)
    3. {
    4. unsigned int bin[8];
    5. int i = 0;
    6. for(i = 7; i >= 0; i--)
    7. {
    8. bin[i] = (zahl >> i) & 1;
    9. printf("%i ", bin[i]);
    10. }
    11. printf("\n");
    12. }
    13. int main(void)
    14. {
    15. dec2bin(123);
    16. return(0);
    17. }
    Alles anzeigen


    hoffe es hilft ^^
    code lässt sich auch noch ausbauen wenns sein muss
  • Hehe ja sicherlich könnte man :D und sicherlich hab ich viel zu komplex...aber ich darf ,dank der professorin, nichts benutzen was wir noch nicht in den vorlesungen hatten :D dadrunter auch funktionen..

    Und die gute Dame will ein char array xD das gerade nur das problem was ich lösen muss, sonst funktioniert es ja :D und das is ja das wichtigste :D