Hallo. Da hab ich eine Aufgabe bekommen und zwar :
Naja mit nen String oder Array koennte ich das vielleicht leicht erledigen, aber ohne kann ich es nicht schaffen :S Da hab ich was geschrieben und probier, was aber totaler schwachsinn ist. Hier ist das, was ich bischer gemacht hab und ich weiss es ist total falsch:
Das ist mir zu hoch :/ Ich komm einfach nicht weiter.
Als Ausgabe bekomme ich daraus folgendes :
Schreiben Sie eine rekursive und eine iterative Methode, die eine ¨ubergebene ganze Zahl vom Typ int als
Dualzahl ausgeben! Sie d¨urfen hier keine Arrays oder Strings verwenden. Sie brauchen nur positive ganze
Zahlen zu ber¨ucksichtigen! Verwenden Sie diese Funktionen in einem Hauptprogramm, um vom Nutzer
einzugebende Zahlen als Dualzahl auszugeben!
Naja mit nen String oder Array koennte ich das vielleicht leicht erledigen, aber ohne kann ich es nicht schaffen :S Da hab ich was geschrieben und probier, was aber totaler schwachsinn ist. Hier ist das, was ich bischer gemacht hab und ich weiss es ist total falsch:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Dualzahl {
public static int umrechnungIterativ(int dezimal)
{
if(dezimal<1024 && dezimal >= 0)
{
System.out.print("0 ");
}
else if(dezimal>=1024)
{
System.out.print("1 ");
dezimal=dezimal-1024;
}
if(dezimal<512)
{
System.out.print("0 ");
}
else if(dezimal>=512)
{
System.out.print("1 ");
dezimal=dezimal-512;
}
if(dezimal<256)
{
System.out.print("0 ");
}
else if(dezimal>=256)
{
System.out.print("1 ");
dezimal=dezimal-256;
}
if(dezimal<128)
{
System.out.print("0 ");
}
else if(dezimal>=128)
{
System.out.print("1 ");
dezimal=dezimal-128;
}
if(dezimal<64)
{
System.out.print("0 ");
}
else if(dezimal>=64)
{
System.out.print("1 ");
dezimal=dezimal-64;
}
if(dezimal<32)
{
System.out.print("0 ");
}
else if(dezimal>=32)
{
System.out.print("1 ");
dezimal=dezimal-32;
}
if(dezimal<16)
{
System.out.print("0 ");
}
else if(dezimal>=16)
{
System.out.print("1 ");
dezimal=dezimal-16;
}
if(dezimal<8)
{
System.out.print("0 ");
}
else if(dezimal>=8)
{
System.out.print("1 ");
dezimal=dezimal-8;
}
if(dezimal<4)
{
System.out.print("0 ");
}
else if(dezimal>=4)
{
System.out.print("1 ");
dezimal=dezimal-4;
}
if(dezimal<2)
{
System.out.print("0 ");
}
return dezimal;
}
public static void main(String[] args) throws IOException {
int dezimal;
InputStreamReader eingabestrom = new InputStreamReader (System.in);
BufferedReader puffer = new BufferedReader (eingabestrom);
System.out.print("Gib eine Dezimalzahl ein: ");
dezimal = Integer.parseInt(puffer.readLine());
System.out.println("Die Dezimalzahl " +dezimal+ " entspricht der Dualzahl " +umrechnungIterativ(dezimal)+ ".");
}
}
Das ist mir zu hoch :/ Ich komm einfach nicht weiter.
Als Ausgabe bekomme ich daraus folgendes :
Java:
Gib eine Dezimalzahl ein: 10
0 0 0 0 0 0 0 1 0 Die Dezimalzahl 10 entspricht der Dualzahl 2.