violentviper
Lt. Commander
- Registriert
- Mai 2008
- Beiträge
- 1.821
Hallo,
ich habe eine Verständnisfrage zu meinem kleinem Java Programm. Das Programm liest einen Integer ein (max. 4 stellig) und rechnet dann bei Binärerer Eingabe(z.B 1010) in das dezimale Ergebnis (10) um.
Das funktioniert auch soweit gut, jedoch ohne Schleifen.
Und genau hier ist mein Problem, laut Buch soll man es mittels einer for Schleife lösen. Aber ich weiß beim besten Willen nicht wo ich hier eine Schleife überhaupt reinbauen könnte.
Ich dachte mir Anfangs bei den einzelnen digits, die ich dann hochzähle, aber dann komme ich in Verzug mit der Wertigkeit der einzelnen Stellen, welche für die Berechnung von Bedeutung sind. Bei der Endberechnung, sehe ich auch nicht wo ich da sinnvoll eine Schleife reinbauen könnte.
Wäre nett wenn mir hier jemand auf die Sprünge helfen könnte.
ich habe eine Verständnisfrage zu meinem kleinem Java Programm. Das Programm liest einen Integer ein (max. 4 stellig) und rechnet dann bei Binärerer Eingabe(z.B 1010) in das dezimale Ergebnis (10) um.
Das funktioniert auch soweit gut, jedoch ohne Schleifen.
Und genau hier ist mein Problem, laut Buch soll man es mittels einer for Schleife lösen. Aber ich weiß beim besten Willen nicht wo ich hier eine Schleife überhaupt reinbauen könnte.
Ich dachte mir Anfangs bei den einzelnen digits, die ich dann hochzähle, aber dann komme ich in Verzug mit der Wertigkeit der einzelnen Stellen, welche für die Berechnung von Bedeutung sind. Bei der Endberechnung, sehe ich auch nicht wo ich da sinnvoll eine Schleife reinbauen könnte.
Wäre nett wenn mir hier jemand auf die Sprünge helfen könnte.
Code:
import java.util.Scanner;
public class BinaerToDecimal {
public static void main(String[] args) {
System.out.print("Geben sie die Zahl ein ");
Scanner input = new Scanner(System.in); //Tastatureingabe
int i = input.nextInt();
int result= 0;
int digit1 = ((i/1000) % 10); // Digitabfrage
int digit2 = ((i/100) % 10);
int digit3 = ((i/10) % 10);
int digit4 = ((i/1) % 10);
if (digit1>1 | digit2>1 | digit3>1 | digit4>1)
System.out.println("Ihr Wert wurde normiert, indem Zahlen>1 als 1 interpretiert wurden :");
if (digit1>1) // normiert den Wert für Zahlen>1 auf 1
digit1=1;
if (digit2>1)
digit2=1;
if (digit3>1)
digit3=1;
if (digit4>1)
digit4=1;
result=(digit4*1)+(digit3*2)+(digit2*4)+(digit1*8);
System.out.println(result);
}
}