samedi 30 mai 2015

Bitweise Operatoren

Hallo Leute,
Ich bin ein Java-Anfänger und möchte folgende Aufgabenstellung lösen:

·
Geben sie diese Zahlen formatiert in Dezimal aus (3 Stellen, führende Nullen).
·
Geben sie diese Zahlen formatiert in Hexadezimal aus (2 Stellen).
·
Geben sie diese Zahlen formatiert in Binärdarstellung aus (8 Stellen, rechtsbündig als
Datentyp
Stri
ng
, verwenden sie die Methode
Integer.toBinaryString(...)
).
·
Verknüpfen sie die letzte zufällig erzeugten Zahl mit den
bitweisen
Operatoren AND
(&) mit 255, ODER (|)
mit 1
und XOR(^)
mit 255
. Geben sie das Ergebnis in
Dezimal/Hexadezimal und Binär aus und übe
rprüfen sie das Ergebnis




Beispiel:
Uebung 18
-
Bitweise Operatoren
Bitte die Anzahl der Zufallszahlen <1
-
9>:3
Zufallszahlen:
Dez: 160 Hex: A0 Bin: 10100000
Dez: 041 Hex: 29 Bin: 101001
Dez
: 239 Hex: EF Bin: 11101111
Logische Verknuepfung:
Dez: 239 Hex: EF Bin: 11101111
---
AND
Dez: 239 Hex: EF Bin: 11101111

---

OR
Dez: 016 Hex: 10 Bin: 10000
---
XOR

Ein erster Lösungsversuch von mir sieht in etwa so aus:Scanner in = new Scanner (System.in);

int anzahl, zufallszahl =0, ergAnd =255, ergOr =1, ergXor=255;
String binarystring;

System.out.println("Bitte die Anzahl der Zufallszahlen: ");
anzahl =in.nextInt();

if (anzahl>=1 && anzahl<=9){

System.out.println("Zufallszahlen: ");

for (int i =1; i<=anzahl; i++){
zufallszahl = (int) (Math.random() * 256);

binarystring = Integer.toBinaryString(zufallszahl);

System.out.format("Dez: %03d Hex: %02X Bin: %8s%n", zufallszahl,
zufallszahl, binarystring);
}
ergAnd = ergAnd & zufallszahl;
ergOr = ergOr | zufallszahl;
ergXor = ergXor ^ zufallszahl;

System.out.println();

System.out.println("Logischverknüpfung");
binarystring = Integer.toBinaryString(ergAnd);
System.out.format("Dez: %03d Hex: %02X Bin: %8s --- AND%n",
ergAnd, ergAnd, binarystring);
binarystring = Integer.toBinaryString(ergOr);
System.out.format("Dez: %03d Hex: %02X Bin: %8s --- OR%n",
ergOr, ergOr, binarystring);
binarystring = Integer.toBinaryString(ergXor);
System.out.format("Dez: %03d Hex: %02X Bin: %8s --- Xor%n",
ergXor, ergXor, binarystring);

System.out.println(Integer.toBinaryString(-5) + " = " + (~5+1));
System.out.format(" R = %.2f" , 1.0/3);

}else{
System.out.println("Falsche Anzahl (" + anzahl + "), "
+ "Programm beendet");

Mein Hauptproblem ist, dass ich mit der Ausgabeform System.out.format noch nicht sehr vertraut bin.
Ich hoffe Ihr könnt mir weiterhelfen, ich komme nicht auf den Fehler.
Mit freundlichen Grüßen pauli99
Angehängte Dateien


Bitweise Operatoren

0 commentaires:

Enregistrer un commentaire