Hallo liebe Mitforennutzer,
ich bin im ersten Semester und uns wurde folgende Klasse aufgezeigt.
Diese sollen wir nun versuchen zu verstehen (was passiert in den jeweiligen Schritten) und
falls möglich verbessern.
Ich wäre schon sehr dankbar für eine detaillierte Erklärung zu den Geschehnissen der Schritte.
Da ich wirklich noch Anfänger bin, würde ich mich über simple Erklärungen freuen
Vielen Dank im Vorraus.
Hier der Code:
ich bin im ersten Semester und uns wurde folgende Klasse aufgezeigt.
Diese sollen wir nun versuchen zu verstehen (was passiert in den jeweiligen Schritten) und
falls möglich verbessern.
Ich wäre schon sehr dankbar für eine detaillierte Erklärung zu den Geschehnissen der Schritte.
Da ich wirklich noch Anfänger bin, würde ich mich über simple Erklärungen freuen
Vielen Dank im Vorraus.
Hier der Code:
Java:
import javax.swing.*;
public class DezToBin {
public static void main(String[] args) {
long dezimalzahl;
String eingabe = JOptionPane.showInputDialog("Zahl eingeben!");
dezimalzahl = Integer.parseInt(eingabe);
System.out.print("Die groesste 1-Bit-Gruppe von " + dezimalzahl
+ " (Binaer:");
doDeztobin(dezimalzahl);
System.out.print(") hat " + groupSize(dezimalzahl) + " Bit(s)\n\n");
}
static void doDeztobin(long z) { // long z = long dezimahlzahl
long b = 1;
if (z == 0) {
System.out.print("0");
return; // return, damit nicht weiter gelaufen wird in der Methode (wie "break" bei switch)
}
while (b <= z)
b <<= 1; // <<= "Zuweisung mit Linksverschiebung" b = << 1??
b >>= 1; // >>= "Zuweisung mit Rechtsverschiebung" b = >> 1??
System.out.println(b);
while (b != 0) {
if ((z & b) != 0)
System.out.print("1");
else
System.out.print("0");
b >>= 1;
}
}
static int groupSize(long z) {
long b = 1;
int max = 0, akt = 0;
while (b <= z) {
if ((z & b) != 0) {
akt++;
} else {
if (akt > max)
max = akt;
akt = 0;
}
b <<= 1;
}
if (akt > max)
max = akt;
return (max);
}
}
Zuletzt bearbeitet: