Dezimal in Binär (Array)

Juliuswp

Neues Mitglied
Guten Abend,
ich wollte mit meinem Programm es schaffen eine Umwandlung von einer Dezimalzahl in eine Binärzahl. Mein Fehler liegt sehr wahrscheinlich daran, dass ich nicht genau weiß, wie man das Array im Main richtig aufruft. Vielleicht könnte mir jemand dabei helfen?

Liebe Grüße


package javaapplication10;


public class JavaApplication10 {

public static void main(String[] args) {

java.util.Scanner eingabe = new java.util.Scanner (System.in);
System.out.println("Zahl eingeben");
int Zahl = eingabe.nextInt();

double rechnen = rechnen(Zahl);
System.out.println(rechnen);

double rechnen2 = eigentlichesRechnen(zahler,Zahl);
System.out.println(rechnen2);
}

public static double rechnen (int Zahl)
{
int erg = Zahl;
int zahler =1;
while(erg != 0 )
{
erg = erg/2;
zahler++;

}
return zahler;
}

public static int eigentlichesRechnen (int zahler, int Zahl )
{
int []zahlen = new int [zahler];
int i = 0;
while (i < zahler)

{
zahlen = Zahl%2;
Zahl = Zahl/2;
i++;
}
return zahlen;
}
}
 
Zuerst einmal, benutze bitte [code=java]...dein Code...[/code] Tags. Desweiteren, nenne deine Methoden bitte nicht "rechnen" und "eigentlichesRechnen". Es ist dadurch sehr schwer, zu ermitteln, was diese Methoden eigentlich tun sollen, um dir bei deinem möglichen Fehler weiterzuhelfen.
Ich schätze, die Methode "rechnen" sollte eher heißen: "ermittleAnzahlBinaerStellen" (oder so in etwa) und "eigentlichesRechnen" sollte heißen: "generiereBinaerDarstellungAlsArray" (oder so).
Die Methode sollte dann wohl auch ein int[]-Array zurückliefern. Ich frage mich allerdings, warum du bei der Zuweisung des Ergebnisses ein double verwendest. Der double-Typ generell hat bei dir überhaupt nirgends etwas verloren.

Falls du einfach nur eine Zahl generieren willst, die als Dezimal interpretiert die Binärdarstellung einer anderen Zahl ergibt, dann:
Java:
public class Binaer {
  public static long toBinaryNumber(long v) {
    return v != 0 ? 10 * toBinaryNumber(v / 2) + v % 2 : 0;
  }
  public static void main(String[] args) {
    System.out.println(toBinaryNumber(254)); // <- 11111110
  }
}
 
Guten Tag,
darf ich mal nachfragen was du da genau vor hast mit dem Array?
Möchtest du jede Binärzahl, die du wie oben von httpdigest geschrieben generieren kannst, im Array abspeichern?

Dann musst du in deiner Methode das Array zurück geben und es vorher füllen so z. B.:
Java:
    public static int[] eigentlichesRechnen (int zahler, int Zahl ) {
    int []zahlen = new int [zahler];
    int i = 0;
    while (i < zahler) {
        zahlen[i] = Zahl%2;
        Zahl = Zahl/2;
        i++;
    }
    return zahlen;
    }

lg
 

Zurück
Oben