Announcement

Collapse
No announcement yet.

Kann mir jemand diese while Schleife erklären?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Kann mir jemand diese while Schleife erklären?

    Hi es geht um das Konvertieren von dezimal zu binär.
    Folgende While Schleife will sich mir nicht ergeben:

    --------------------------------------------------
    int abschnitt1, binzahl=0;
    float p=1;

    while(abschnitt1>0){

    binzahl=binzahl+(p*(abschnitt1%2));
    p=p*10;
    abschnitt1=abschnitt1/2;

    }
    printf("%d", binzahl);
    ---------------------------------------------------
    Das Ergebnis ist richtig, aber ich verstehe nicht wieso o.O
    Ich hab irgendwo gelesen, dass das p*10 zum umkehren des Ergebnisses dient, ich kann mir aber nicht ausmalen warum das Ergebnis sich dadurch umkehrt,
    und warum vor allem die "binzahl" dann tatsächlich nur aus Einsern und Nullen besteht. Wenn ich das per Hand auf einem Blatt Papier ausrechne kommt immer eine total komische Zahl raus, wo mindestens eine Ziffer >1 drin ist.
    Ich blick nicht durch -.-

  • #2
    Du könntest auch einen Debugger benutzen oder einfach ein paar Debugausgaben auf der Kommandozeile machen. Dann kannst Du Dir die einzelnen Schritte selbst anschauen und vielleicht selbst erschließen was der Code tut

    Comment


    • #3
      Warum einfach, wenn es auch kompliziert geht:
      int a=10000;
      char buffer[20];
      itoa(a,buffer,2);
      printf("Binäer = %s\n", buffer)
      Was du auf deinem Papier rechnest weiß hier keiner und bei einer Rechnung von Hand dürfte auch nix anderes herauskommen
      Christian

      Comment

      Working...
      X