Array soll Werte aufnehmen

TheMindpainter

Neues Mitglied
Hey,

Ich habe ein Problem mit der Umrechnung von einer Dezimalzahl zu einer Dualzahl.
Leider bekomm ich es gerade einfach nicht hin den Wert den ich berechne an das Array dualZahl zu übergeben. Muss ich das mit einem extra Array machen? Habe mein Code mal fett makiert.

Mir ist bewusst das ich die Zahl nicht, wie in der while Schleife codiert, übergeben kann.

Java:
public class DezimalZuDual2 {

	 public static int[] konvertiere(int dezimalZahl, int bits){
	        int basis = 2; 											
	        int[] dualZahl = new int[bits];
	        														
	        for (int i = 0; i < bits; i++)
	            dualZahl[i] = 0;
	       
[B]	       while (dezimalZahl > 0 ) {
	    	   int [] übergabe = new int[bits];
	    	   if(dezimalZahl % basis == 0) {
	    		   dualZahl[i]= 1;
	    	   }
	    	   else {
	    		   dualZahl[i] = 0;
	    	   }
	    	   dezimalZahl = dezimalZahl/basis;
	        	
	        }
	        return dualZahl;[/B]
	 }
	        															
	    public static void print(int[] dualZahl){
	        														
	    															
	        int ersteEins = dualZahl.length-1;
	        while ((ersteEins > 0) && (dualZahl[ersteEins] == 0))
	            ersteEins--;
	        System.out.print("Die Binaerdarstellung lautet ");
	        														
	        														
	        for (int i = ersteEins; i >= 0; i--)
	            System.out.print(dualZahl[i]);
	        System.out.println();
	    }
														
	    public static void main(String[] argv){
	        int n = Terminal.askInt("Bitte Dezimalzahl eingeben: ");
	        int anzahlBits = 16;
	        print(konvertiere(n, anzahlBits));
	    }
}
 
Zuletzt bearbeitet von einem Moderator:
Musst du das ganze iterativ machen?

Rekursiv könnte man das in einer Zeile machen.
Java:
static int decimalToBinary(int n) {

		  return (n == 0) ? n : decimalToBinary(n/2) * 10 + n%2;

		}

Ok, habe deine Frage leicht falsch gelesen und dachte du hast ein Problem mit der grundsätzlichen Umformung. My bad.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben