JAVA: Verwenden des AND-Operators für binäre Zahle

Von: , 30.01.2011 18:41 Uhr

Hey Leute,
ich habe folgendes kleines Problem. Ich bin dabei ein kleines Programm zu schreiben und möchte hierfür zwei binäre Zahlen mit einem AND-Operator verknüpfen.
Dafür habe ich folgende Zeile implementiert:

int bint = bin&11110000;

"bin" ist hierbei eine Variable die ebenfalls eine Binärzahl enthält. Leider funktioniert es so einfach nicht :/. Kann es vll sein, dass ich ähnlich wie bei den Hexadezimalzahlen noch ein Präfix setzen muss (Bsp: 0x10F). Wenn ja wie benutze ich das dann auch bei der Variable?
Ich hoffe, dass mir da jemand schnell weiterhelfen kann.
Vielen Dank.

9 Antworten zu dieser Frage

  1. Antwort von nach 9 Minuten 0 hilfreich
    Re: JAVA: Verwenden des AND-Operators für binäre Zahle

    so ungefähr.

    du musst wohl 0xF0 schreiben. Hab aber schon ewig nix in java gemacht, sollte aber so in der at funktionieren.

    • Antwort von nach 29 Minuten 0 hilfreich
      Re^2: JAVA: Verwenden des AND-Operators für binäre Zahle

      Danke für die schnelle Antwort.
      Gibt es nicht vielleicht speziell für Binärzahlen ein Präfix? Weil sonst müsst ich es ja erst wieder in eine Hexadezimalzahl umrechnen.

      • Antwort von nach 34 Minuten 0 hilfreich
        Re^3: JAVA: Verwenden des AND-Operators für binäre Zahle

        keine ahnung. Wie gesagt ist schon etwas länger her bei mir.
        Aber der Vorteil von hex ist auch genau das es leicht zu lesen für binäre zahlen und eben nicht zu langeist. Du siehst deutlich welcheBits gesetzt sind und muss nicht noch dieStelleabzählen.

        • Antwort von nach 43 Minuten 0 hilfreich
          Re^4: JAVA: Verwenden des AND-Operators für binäre Zahle

          Hm, naja nur leider will es die Aufgabe Binär :/
          Danke trotzdem.

  2. Antwort von nach einem Tag 0 hilfreich
    Re: JAVA: Verwenden des AND-Operators für binäre Zahle

    Hallo,
    du kannst ohne weiteres keine Binärzahl einer Variablen zuweisen, sondern musst den Umweg über einen String machen. Schreibe also deinen Binärwert als Zeichenkette auf und parse diesen per Integer.parseInt in einen int-Wert.

    int value = Integer.parseInt("10010011",2);

    Die 2 gibt die Basis des Zahlensystems an.

    Hoffe ich konnte Dir helfen.

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: JAVA: Verwenden des AND-Operators für binäre Zahle

      Hi, ich danke dir sehr für deine Antwort.
      Anscheinend habe ich habe irgendwo noch einen Fehler gemacht den ich leider grad nicht finden kann, vielleicht fällt dir das ja etwas einfacher :)
      Also das hier ist meine Implementierung dazu:

      //Berechnen Code&11110000
      int bin1 = Integer.parseInt(Integer.toBinaryString(i),2);
      int bin2 = Integer.parseInt("11110000",2);
      bin1=bin1&bin2;
      System.out.println("Code AND 11110000 = "+bin1);

      Das 'i' ist eine Variable zwischen 32 und 127 das durch eine for-Schleife generiert wird. Für die Ausgabe i=41 bekomme ich dann zum Beispiel 128 als Ergebnis.
      Hoffe du kannst mir vielleicht sagen wo der Fehler liegt.

      Vielen Dank schonmal. :)
      Gruß Paul

      • Antwort von nach einem Tag 0 hilfreich
        Re^3: JAVA: Verwenden des AND-Operators für binäre Zahle

        Ich bekomme bei deinem Code als Ergebnis 32, wenn ich für i=41 und bin=120 wähle. Wolltest du das?
        Vielleicht kannst du mir noch etwas mehr von deinem Code schicken, damit ich den Fehler nachvollziehen kann. Grüße

        • Antwort von nach 2 Tagen 0 hilfreich
          Re^4: JAVA: Verwenden des AND-Operators für binäre Zahle

          Danke für eure Hilfe Leute, nen Kumpel konnte mir jetzt endlich ne Lösung für das Problem geben :)
          Für alle die das selbe Problem haben und auf diesen Thread stoßen:

          String bv1 = "10010"; // bv = bitvektor
          String bv2 = "11111";

          String result = Integer.toBinaryString(Integer.parseInt(bv1, 2) & Integer.parseInt(bv2, 2));

          System.out.println(result);

  3. Antwort von nach 3 Tagen 0 hilfreich
    Re: JAVA: Verwenden des AND-Operators für binäre Zahle

    Hey,

    das sollte daran liegen, das 11110000 nicht als binär
    interpretiert wird. Für java ist das die Zahl 11110000 einfach. Ihre bit Representation ist eine ganz andere.
    Für binär gibt es kein Präfix.

    Anstatt 11110000 probiere mal 240 oder 0xf0 zu verwenden.
    Wobei ich die Hex schreibweise bevorzugen würde.

    Mfg

Jetzt auf diese Frage antworten.