Dezimalzahl in Dualzahl.

Status
Nicht offen für weitere Antworten.

CaptainItalo

Mitglied
Hallo,
ich habe ein Problem.
Ich muss ein Programm schreiben,welches bei einer Auswahl von Zahlen zwischen 0 und 31 eine Dualzahl ausgibt.
Also soll mein Programm ausgeben am Beispiel 23:
23 % 2 = 11 Rest 1
11 % 2 = 5 Rest 1
5 % 2 = 2 Rest 1
2 % 2 = 1 Rest 0
1 % 2 = 0 Rest 1

Ich habe folgendes programmiert:

Code:
import javax.swing.JOptionPane;

public class DecimalDualConversion {

	
	public static void main(String[] args) {
		  String s = JOptionPane.showInputDialog( "Bitte geben Sie eine positive ganze Dezimalzahl zwischen 0 und 31 ein: " ); 
		  int dez = Integer.parseInt( s );
		  int dualzahl,rest;
		  if (dez <= 31){
		        if (dez % 2 == 1) {
		        	dualzahl = dez / 2;
		        	rest = 1;
		        }
		        else  {
		        	dualzahl = dez / 2;
		        	rest = 0;
		        	}
		  System.out.println(dez+" : 2 = "+dualzahl+" Rest "+rest);
		  }
		  else if (dez == 0) {
			  System.out.println("0 : 2 = 0 Rest 0");
		  }
		  else if (dez >= 32) {
			  System.out.println("Bitte geben Sie eine Zahl zwischen 0 und 31 ein!");
		  }
		  else if (dez < 0) {
			  System.out.println("Bitte geben Sie eine Zahl zwischen 0 und 31 ein!");
		  }
	}
}

-> ich erhalte nur eine Zeile und nicht wie im Beispiel fünf. Die Rechnungen stimmen...
Könnte mir jemand einen Anstoß geben. Bitte bedenkt, dass ich bislang noch nicht vielmehr als Schleifen hatte...

*Code-Tags eingefügt - Wildcard*
 

Wildcard

Top Contributor
CaptainItalo hat gesagt.:
Könnte mir jemand einen Anstoß geben. Bitte bedenkt, dass ich bislang noch nicht vielmehr als Schleifen hatte...
Warum benutzt du dann keine?
Ist doch klar das der Code ohne Schleife oder Rekursion nicht mehr als einmal ausgeführt wird :bahnhof:
 

CaptainItalo

Mitglied
Ich habe versuch eine while-Schleife einzubauen, aber das bringt leider nichts...
Auch mit einer for-Schleife komme ich nicht auch eine Zahl, wie oft durch die Schleife gelaufen werden soll. Höchstens mit Wurzalberechnung, aber das hatten wir absolut noch nicht.
 

CaptainItalo

Mitglied
Genau, das habe ich schon probiert & ich habe noch nicht gelernt, wie man ein Programm abbricht ( das Programm einfach zu schließen ist wohl nicht die optimale Sache)...
 

Marcel_Handball

Bekanntes Mitglied
Code:
import javax.swing.*;

public class Test {

  public static void main(String[] args) {
	  String s = JOptionPane.showInputDialog( "Bitte geben Sie eine positive ganze Dezimalzahl zwischen 0 und 31 ein: " );
      int dez = Integer.parseInt( s );
      int er=dez/2,
      rest=dez%2;
      
      while(er!=0){
    	  System.out.println(dez+" % 2 = "+er +" Rest "+rest );
    	  dez=er;
    	  er=dez/2;
    	  rest=dez%2;
      }
  
      System.out.println(dez+" % 2 = "+er +" Rest "+rest );
  
  }
}
 

CaptainItalo

Mitglied
Gut, zur schöneren Ausgabe habe ich noch einige if-Schleifen eingebaut:

public static void main(String[] args) {
String s = JOptionPane.showInputDialog( "Bitte geben Sie eine positive ganze Dezimalzahl zwischen 0 und 31 ein: " );
int dezi = Integer.parseInt( s );
int dual=dezi/2;
int rest=dezi%2;

while(dual!=0){
if (dual>=10){
System.out.println(dezi+" % 2 = "+dual +" Rest "+rest );
dezi=dual;
dual=dezi/2;
rest=dezi%2;

}
else if (dezi>=10){
System.out.println(dezi+" % 2 = "+dual +" Rest "+rest );
dezi=dual;
dual=dezi/2;
rest=dezi%2;

}
else {
System.out.println(" "+dezi+" % 2 = "+dual +" Rest "+rest );
dezi=dual;
dual=dezi/2;
rest=dezi%2;

}

}

System.out.println(" "+dezi+" % 2 = "+dual +" Rest "+rest );
//int[] gesamteDualzahl = {rest};
//System.out.println(gesamteDualzahl);
System.out.println(rest);
}

Es gibt das aus, was ich will. Jedoch soll ich noch nach der Ausgabe der einzelnen Reihen noch die gesamte Dualzahl ausgegeben werden. Ich habe nur die letzte Ziffer. Anstelle von 23 -> 11101 habe ich nur die letzte 1.
Ich habe versucht in die einzelnen if-Schleifen ein Array einzubauen, aber das klappt nicht so ganz.
Gibt es eine Möglichkeit dieses mir Arrays zu lösen?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
wofus Interface EditText Feld Multiline Dezimalzahl Java Basics - Anfänger-Themen 2
C Gleitkommazahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 4
J Dezimalzahl in Bruch Umwandeln und Kürzen Java Basics - Anfänger-Themen 8
S Variablen Abbruchbedingung: Dezimalzahl Java Basics - Anfänger-Themen 32
W Dezimalzahl in Binär umwandeln - Was sollte ich an meinem Programm verbessern? Java Basics - Anfänger-Themen 5
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
P Zeichenkette mit Binärzahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 3
O Dezimalzahl in andere Zahlensysteme Java Basics - Anfänger-Themen 5
1 Binärdarstellung (als String) in Dezimalzahl umwandeln Java Basics - Anfänger-Themen 8
H inputfeld dezimalzahl mit komme statt punkt Java Basics - Anfänger-Themen 12
H OOP Dezimalzahl in Binärzahl mit GUI - Problem Java Basics - Anfänger-Themen 14
J Dezimalzahl in Binärdarstellung Java Basics - Anfänger-Themen 6
J Gleitkommazahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 5
F Variablen Dezimalzahl oder doch nicht? Java Basics - Anfänger-Themen 5
D String mit 2 Stellen nach dem Komma (Dezimalzahl) Java Basics - Anfänger-Themen 9
D Umwandlung char -> dezimalzahl und ausgabe als int Java Basics - Anfänger-Themen 5
S Regex für Dezimalzahl. Problem mit Nachkommastellen Java Basics - Anfänger-Themen 5
P Umrechnung von Basis b zu Dezimalzahl Java Basics - Anfänger-Themen 7
R dezimalzahl in hexadezimalzahl umwandeln Java Basics - Anfänger-Themen 14
G Dezimalzahl(integer) ziffernweise umdrehen Java Basics - Anfänger-Themen 3
G Binärzahl in dezimalzahl umwandeln Java Basics - Anfänger-Themen 5
C String auf Dualzahl überprüfen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben