Brauche Hilfe und komme nicht weiter bei folgender Aufgabenstellung:
Übung 2: Mit Arrays (Feldern) arbeiten
Entwickeln Sie ein Programm, das eine positive ganze Zahl zur Basis 10 in eine Dualzahl (Zahl zur Basis 2) mit 16 Bit umrechnet. Das Programm soll mit Hilfe von Kommandozeilenparameter verwendet werden können. Wurde kein Parameter an das Programm übergeben, so muss der Benut-zer nach der gewünschten Zahl gefragt werden. Nur wenn eine zulässige Eingabe erfolgt ist, soll die eigentliche Berechnung durchgeführt werden. Verwenden Sie zur Speicherung der Dualzahl ein Array mit 16 Einträgen. Jeder Eintrag ist eine Zahl mit Wert 0 oder mit Wert 1. Das erste Element des Arrays enthält das hochwertigste Bit der Dualzahl, das letzte Element des Arrays enthält das niederwertigste Bit der Dualzahl. Bitte beachten Sie, dass das Programm nur Zahlen umrechnen soll, die in 16 Bit dar-stellbar sind. Zahlenwerte, die nicht in 16 Bit dargestellt werden können, sollen nicht umgerechnet werden. In diesem Fall gibt das Programm eine Fehlermeldung aus.
mein Ansatz sieht so aus
Übung 2: Mit Arrays (Feldern) arbeiten
Entwickeln Sie ein Programm, das eine positive ganze Zahl zur Basis 10 in eine Dualzahl (Zahl zur Basis 2) mit 16 Bit umrechnet. Das Programm soll mit Hilfe von Kommandozeilenparameter verwendet werden können. Wurde kein Parameter an das Programm übergeben, so muss der Benut-zer nach der gewünschten Zahl gefragt werden. Nur wenn eine zulässige Eingabe erfolgt ist, soll die eigentliche Berechnung durchgeführt werden. Verwenden Sie zur Speicherung der Dualzahl ein Array mit 16 Einträgen. Jeder Eintrag ist eine Zahl mit Wert 0 oder mit Wert 1. Das erste Element des Arrays enthält das hochwertigste Bit der Dualzahl, das letzte Element des Arrays enthält das niederwertigste Bit der Dualzahl. Bitte beachten Sie, dass das Programm nur Zahlen umrechnen soll, die in 16 Bit dar-stellbar sind. Zahlenwerte, die nicht in 16 Bit dargestellt werden können, sollen nicht umgerechnet werden. In diesem Fall gibt das Programm eine Fehlermeldung aus.
mein Ansatz sieht so aus
Java:
import java.util.*;
public class bit16 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("gib ne zahl ein: ");
int zahlEingabe = (int) sc.nextLong();
int dualDec[] = { 32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, //Erstellen des Arrays
64, 32, 16, 8, 4, 2, 1 };
// if (zahlEingabe > 65535) {
// System.out.println("geht nix");
// }
// else {
int temp = zahlEingabe; //Erstellen einer Laufvariablen
int i = 0;
while (i < 16) {
if (temp >= dualDec[i]) {
System.out.print("1\t");
temp = temp - dualDec[i];
i++;
} else
System.out.print("0\t");
i++;
}
}
}
Zuletzt bearbeitet von einem Moderator: