Ergebnis 1 bis 6 von 6

Thema: Java: Zahlenumwandlung, Dezi in Dual

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Java: Zahlenumwandlung, Dezi in Dual

    Okay ich hab versucht ein Java Pogramm zu schreiben welches Dezimalzahlen in Dualzahlen umwandelt.

    Weil ich den Zahlen keine Grenzen setzen wollte versuchte ich das ganze in 2 Schleifen zu setzen. Eine für die Berechnung der Dualzahl und eine für die Korrekte Ausgabe der Dualzahl, allerdings bringt er mir beim ausführen einen Fehler mit dem ich überhaupt nix anfangen kann

    Das Programm liegt hier als .java Datei vor. Also als Sourcecode. Vielleicht könnte mir jemand helfen das Problem zu lösen, wäre jedenfalls sehr dankbar

  2. #2
    Da du ja den Dualinput nicht weiterverwendest, brauchst du nicht umständlich mit Arrays zu arbeiten, sondern einfach die Zahl immer vorne an den Ausgabestring dranreihen... Erspart Schleifen und Laufzeitkomplexität...

    Hab mir erlaubt den Code "etwas" anzupassen

    Code:
    //Importieren
    import javax.swing.JOptionPane;
    
    //Main Class
    public class Dualzahl
    {
        public static void main(String args[])
        {
            //Deklaration
            String input, output = "";
            int i;
            
            //Let the show begin
            input = JOptionPane.showInputDialog(null,"Geben sie eine Dezimal Zahl ein"
            ,"Zahl eingeben",JOptionPane.PLAIN_MESSAGE);
            i = (Integer.parseInt(input));
    
            if(i == 0) output = "0";
    
            while(i != 0)
            {
            	output = i % 2 + output;
            	i /= 2;
            }
                    
            JOptionPane.showMessageDialog(null,"Die Dezimalzahl lautete: " + input + 
            "\nDie Dualzahl lautete: " + output ,"Ausgabe",JOptionPane.PLAIN_MESSAGE);
        }
    }
    Edit:

    Problem gabs übrigens mit einer Array Out-of-Bounds Exception, sprich: du wolltest auf ein Arrayelement zugreifen, dass nicht existiert...


    Edit 2: Hab noch eine kleinere Lösung gefunden... es lebe die Java Klassenbibliothek

    Code:
    //Importieren
    import javax.swing.JOptionPane;
    
    //Main Class
    public class Dualzahl
    {
        public static void main(String args[])
        {
            //Deklaration
            String input;
            
            //Let the show begin
            input = JOptionPane.showInputDialog(null,"Geben sie eine Dezimal Zahl ein"
            ,"Zahl eingeben",JOptionPane.PLAIN_MESSAGE);
            
            JOptionPane.showMessageDialog(null,"Die Dezimalzahl lautete: " + input + 
            "\nDie Dualzahl lautete: " + Integer.toBinaryString(new Integer(input).intValue())
             ,"Ausgabe",JOptionPane.PLAIN_MESSAGE);
        }
    }

    Geändert von MuadDib (13.12.2003 um 00:57 Uhr)

  3. #3
    Mhm...

    Okay danke

    Hatte erlich gesagt keine Ahnung wie das mit den Arrays lief und wollte deswegen etwas mit den Array und schleifen rumspielen, ist aber nix gescheites rausgekommen wie man sah

    Aber jetzt bin ich wieder ein Stücken schlauer

  4. #4
    Achso... wenn du dich mit Arrays und Schleifen spielen willst gibts sicher geeigneteres... hier sind ein paar nette Beispiele (wenn auch primitiv).

  5. #5
    Gnihihi, ich liebe Java
    Ich glaube, es gibt fast nichts, was Java nicht mit integrierten Bibliotheken lösen könnte
    Auch wenn Edit 2 kürzer ist, find ich Lösung 1 besser, weil man da wenigstens sieht, was da so bei ner Binärumrechnung abgeht.
    Will mans schnell machen, ist natürlich Edit2 besser, bevor man schnell den Algorithmus austüftelt.

    Wollt ich nur mal erwähnt haben ^^° *wusch*

  6. #6
    /me grüßt MuabDib

    @ TheByteRaper
    Ja, Java hat wirklich für (fast) alles und jedes eine fertig Lösung parat - man muß sie nur finden...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •