IP-Addresse in Binär Ausgeben?



  • Hey Leute,

    also ich habe folgendes Problem, ich arbeite ich gerade ein wenig in die Netzwerktechnik ein, dabei möchte ich eben eine Dezimale IP Addresse wie 192.168.0.1 in Binär ausrechnen.

    Allerdings dies über eine Grafische Oberfläche d.h. die IP-Addresse wird aufgeteilt auf 4 TextBox und dann soll die jeweiligen Zahlen umgerechnet werden.

    So soll das Layout aussehen:

    http://aryon.ar.funpic.de/layout.JPG

    Wie bekomm ich es jetzt zustande das eben diese IP Addressen in Binär angezeigt werden?

    MfG

    iLLu444



  • Wo ist denn jetzt genau dein Problem? Weißt du nicht, wie man eine Dezimal- in eine Binärzahl umrechnet, oder wie du die dezimalen Werte aus den Textboxen ausliest?

    Bis dann denn!

    McTrevor



  • Das Problem liegt darin wie ich diesen ausgelesenen Wert in Binär dann berechne.

    MfG

    iLLu444



  • Habe das gerade mal ergoogled, ist also nicht auf meinem Mist gewachsen, aber so, oder so ähnlich würde ich es auch machen:

    #include <iostream>   // für io
    #include <sstream>    // für's umwandeln (stringstreams)
    #include <algorithm>  // für's umdrehen (coole algorithmen)
    
    using std::string;
    using std::ostringstream;
    
    int main(void)
    {
      int zahl = 439828; // unser input
    
      ostringstream os;  // hier drin binärziffern sammeln
    
      for ( int i = zahl; i != 0; )
      {
        // es wird immer das rechte bit untersucht (also bit 0)
        // wenn zahl ungerade (Bit 0 == 1), dann
        // "1" an den ostringstream hängen, sonst "0"
        if (i & 1) 
          os << "1";
        else 
          os << "0";
    
        i >>= 1; // nach rechts shiften, um nächste 
                 // binärziffer zu untersuchen 
                 // (entspricht teilen durch zwei)
      }
    

    Danach muss der String aber noch ausgelesen werden und umgedreht. Die Wertigkeit der Bits ist da noch vertauscht.

    Bis dann denn!

    McTrevor



  • Convert::ToString(255, 2);
    


  • Nagut, das ist wahrscheinlich die einfachste Lösung. Allerdings ist der Lerneffekt dabei auch am geringsten 😉

    Bis dann denn!

    McTrevor



  • Okay gut lerneffekt, hab deine methode ja soweit verstanden was sie macht 😉


Log in to reply