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

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.

so ungefähr.

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

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.

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.

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

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.

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 :smile:
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. :smile:
Gruß Paul

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

Danke für eure Hilfe Leute, nen Kumpel konnte mir jetzt endlich ne Lösung für das Problem geben :smile:
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);

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