Java :: Aufgabe #67 :: Lösung #2

4 Lösungen Lösungen öffentlich
#67

Zahlenausgabe in verschiedenen Schreibweisen

Anfänger - Java von pocki - 26.11.2014 um 11:53 Uhr
Schreibe ein Programm, welches eine positive Ganzzahl in dezimaler Schreibweise entgegen nimmt.
Gib diese Zahl dann in binärer, oktaler und hexadezimaler Schreibweise, ohne Verwendung der integrierten Formatierungsfunktionen, wieder aus.

Beispiel:

Konsolenausgabe:


Zahl eingeben: 365

binär: 101101101
oktal: 555
hexadezimal: 16D
#2
vote_ok
von nOrdan (1160 Punkte) - 09.06.2019 um 20:22 Uhr
Anmerkung: Habe noch Duodezimal hinzugefügt

Main-Klasse:

Quellcode ausblenden Java-Code


import Methodensammlung.Methoden;

/**
 * Umrechnung einer Zahl in Dezimalsystemschreibweise in binär,oktal,duodezimal und hexadezimal.
 * 
 * @author (nOrdan) 
 * @version (09.06.2019)
 */

public class Umrechner
{

    Methoden m = new Methoden();

    public static void main(String [] args)
    {
        Umrechner u = new Umrechner();
        u.inputs();
    }

    private void inputs()
    {
        boolean valid1 = false;
        int zahl = 0;
        while (valid1 == false)
        {
            String input1 = m.userInput("Geben sie eine Zahl in Dezimalschreibweise ein");
            m.errorIntInput(input1);
            try
            {
                zahl = m.parseInt(input1);
                valid1 = true;
            }
            catch(Exception e)
            {
                m.errorMessage("Invalid user input","Invalid input");
            }
        }    
        umrechnung(zahl);
    }

    private void umrechnung(int zahl)
    {
        m.informationMessage("10 wird im Duodezimalsystem als A und 11 als B dargestellt","Hinweis");
        String binaer = "";
        String oktal = "";
        String duodezimal = "";
        String hexadezimal = "";
        int ausgabeZahl = zahl;
        while (zahl > 0)
        {
            int rest = zahl % 2;
            zahl /= 2;
            binaer = rest + binaer;
        }
        zahl = ausgabeZahl;
        while (zahl > 0)
        {
            int rest = zahl % 8;
            zahl /= 8;
            oktal = rest + oktal;
        }
        zahl = ausgabeZahl;        
        while (zahl > 0)
        {
            int rest = zahl % 12;
            if (rest < 10)
            {
                duodezimal = rest + duodezimal;
            }
            else
            {
                duodezimal = (char) ('A' + rest - 10) + duodezimal;
            }
            zahl /= 12;
        }
        zahl = ausgabeZahl;
        while (zahl > 0)
        {
            int rest = zahl % 16;
            if (rest < 10)
            {
                hexadezimal = rest + hexadezimal;
            }
            else
            {
                hexadezimal = (char) ('A' + rest - 10) + hexadezimal;
            }
            zahl /= 16;
        }       
        m.informationMessage("In Binär entspricht " + ausgabeZahl + " der Zahlenfolge " + binaer + "\n" + "In Oktal entspricht " + ausgabeZahl + " der Zahlenfolge " + oktal + "\n" + "In Duodezimal entspricht " + ausgabeZahl + " der Zahlenfolge " + duodezimal + "\n" + "In Hexadezimal entspricht " + ausgabeZahl + " der Zahlenfolge " + hexadezimal,"Ergebnis");
    }
}





Die Methoden die ich aus meinem eigenem Methodensammlung package benutzt habe:

Quellcode ausblenden Java-Code

public String userInput(String message)
    {
        return JOptionPane.showInputDialog(message);
    }
    

public int parseInt(String input)
    {
        return Integer.parseInt(input);
    }

    public void errorIntInput(String input)
    {
        if (input == null) 
        {
            System.exit(0); //Drückt der User auf abbrechen wird null zurück gegeben und das Programm wird beendet
        }
        else if (input.isEmpty() == true)
        {
            //continue; wenn nötig
        }
    }

 public void errorMessage(String message,String errorName)
    {
        JOptionPane.showMessageDialog(null,message,errorName,JOptionPane.ERROR_MESSAGE); 
    }
    
    public void informationMessage(String message,String informationName)
    {
        JOptionPane.showMessageDialog(null,message,informationName,JOptionPane.INFORMATION_MESSAGE);
    }

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben