jojo: binäre darstellung

Hey Leute,
ich habe ein kleines Problem.
Ich bekomme nicht die Richtige anzahl von Stellen.
Ich wandle eine IP adresse dezimal in binär um.
Mein Problem:
15 entspricht 1111
15.15.15.15 entspricht 1111 1111 1111 1111

richtig wäre es aber 0000 1111 0000 1111 0000 1111 0000 1111

jede zahl steht bei mir extra
int IP1 = 15
int IP2 = 15 ...

Kann mir jemand helfen

  1. Hello,

    Ich wandle eine IP adresse dezimal in binär um.

    wie?

    Ich bekomme nicht die Richtige anzahl von Stellen.

    ja klar, ein Byte hat nunmal 8 Bit, nicht 4. Fülle die fehlenden Stellen auf. Welche Stelle sich dafür anbietet kann ich dir nicht sagen, ohne dass ich die Antwort auf Frage 1 kenne...

    MfG
    Rouven

    --
    -------------------
    Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends: commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. -- Larry OBrien and Bruce Eckel in Thinking in C#
    1. Hey

      Ich wandle eine IP adresse dezimal in binär um.
      wie?

      Das ist ein bischen komisch vielleicht.

      //Binäre Darstellung
      System.out.print( "Binäre Darstellung: " + Integer.toBinaryString(IP1) );

      IP2 = Integer.parseInt(teil[1]);
      System.out.print( " " + Integer.toBinaryString(IP2) );

      IP3 = Integer.parseInt(teil[2]);
      System.out.print( " " + Integer.toBinaryString(IP3) );
      System.out.println( " " + Integer.toBinaryString(IP4) );

      Im Ergebniss werden die 0en am Anfang unterdrückt.
      Habe aber keine Ahnung warum.

      Gruß

      1. Im Ergebniss werden die 0en am Anfang unterdrückt.

        Sei froh, ein Integer ist 32 Bit lang :D
        In der Javadoc wird beschrieben, dass bei diesem Befehl die führenden Nullen ausgelassen werden. Du musst die wohl oder übel mit der Hand füllen.

        1. Hallo,

          In der Javadoc wird beschrieben, dass bei diesem Befehl die führenden Nullen ausgelassen werden. Du musst die wohl oder übel mit der Hand füllen.

          Ich würde System.out.printf nutzen. Die Formatting Syntax hat zwar keine Unterstützung fürs Dualsystem, aber man kann ja auch den durch toBinaryString() erhaltenen String mit Nullen auffüllen (zeropadding).

          Tim