[Java] Dual-/Binärzahlen in Dezimalzahlen umwandeln

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von timo1291, 24. Februar 2008 .

Schlagworte:
  1. #1 24. Februar 2008
    Dual-/Binärzahlen in Dezimalzahlen umwandeln

    Hi,

    ich muss für die Schule mit Java einen Binär- Dezimalzahlen Umrechner programmieren. Dezimalzahlen in Dualzahlen hab ich schon hinbekommen, nur wie geht es von Dual in Dezimal? Ich hab absolut keine Idee.

    Code:
    public class Umrechnung
    {
    
    private int ergebnis; // Wird für die Umrechnung benötigt
    private int teiler; // Eigentlich überflüssig
    private int rest; // Rest kann 1 oder 0 sein, wird je nachdem in einem Array gespeichert
    private int z; // z fuer Zaehler
    private int x; // Dient lediglich zur Speicherung von "zahl" 
    int [] peter = new int[100]; // Array, in dem die Dualzahlen bei der Umrechnung gespeichert werden
    
    
     public Umrechnung(int zahl)
     {
     x = zahl;
     ergebnis = zahl;
     teiler = 2;
     z = 0;
     }
     
     
     public void zahlAendern(int neueZahl)
     {
     z = 0;
     x = neueZahl;
     ergebnis = neueZahl;
     }
     
     
     public void umrechnen()
     { 
     int y = 1;
     while(ergebnis > 0)
     {
     System.out.println(+ergebnis+ " : " +teiler+ " = " +(ergebnis/teiler)+ " Rest = " +(ergebnis % teiler)+ " * " +(y)); 
     rest = ergebnis % teiler; 
     peter[z] = rest;
     ergebnis /= teiler;
     z += 1;
     y *= 2;
     }
     System.out.println();
     System.out.println("Dezimalzahl, die umgewandelt wurde: " +x);
     System.out.println("Folgende Zahlenfolge ist die umgewandelte Dualzahl:");
     System.out.println();
     dualzahlAusgeben();
     }
     
     
     public void dualzahlAusgeben()
     { 
     while(z>0)
     {
     System.out.print(peter[z-1]);
     z -= 1;
     }
     }
    }
    
     
  2. #2 24. Februar 2008
    AW: Dual-/Binärzahlen in Dezimalzahlen umwandeln

    Hey,
    habe es vor paar Wochen schonmal in Visual Basic programmiert, vielleicht hilft es dir ja:

    Es rechnet Dezimalzahlen ins Dualsystem und Dualzahlen ins Dezimalsystem - es werden Prozeduren und Felder benutzt um diese Aufgabe zu bewältigen. (geht aber auch ohne)
    PHP:
    Option Explicit On
    Option Strict On

    Public Class  DeziDual

        
    'Prozedure für Dezi > Dual
        Sub DeziDual(ByRef Dezimalzahl As Integer, ByRef Feld() As Integer)
            Dim i As Integer
            '
    For  Schleife  ( läuft 8x )
            For 
    0 To 7 Step 1
                Feld
    ( i ) =  Dezimalzahl Mod 2  'rechnet den Rest raus
                Dezimalzahl = Dezimalzahl \ 2 '
    dividiert immer weiter runter
            Next

        End Sub

        Sub DualDezi
    ( ByRef feld () As  Integer ByRef Dez  As  Integer )
            
    Dim i  As  Integer
            
    'For-Schleife läuft 8x
            Dez = 0
            For i = 0 To 7 Step 1
                Dez = Dez + CInt(feld(i) * 2 ^ i)
            Next
            txt_dezimal.Text = CStr(Dez)
        End Sub


        '
    Programm für Dezi  Dual
        
    Private  Sub Button2_Click ( ByVal sender  As  System . Object ByVal e  As  System . EventArgs Handles Button2 . Click

            
    'Variablendeklaration
            Dim eingabe As Integer = CInt(txt_dezimal.text)
            Dim dual(0 To 7) As Integer '
    Feld
            Dim i 
    As  Integer

            
    If  eingabe  >=  And  eingabe  <=  255 Then  'Check für die Eingabe

                DeziDual(eingabe, dual) '
    Funktions -/ Prozedurenaufruf

                
    'Vereinbarung der Reihenfolge
                txt_1.Text = CStr(dual(7))
                txt_2.Text = CStr(dual(6))
                txt_3.Text = CStr(dual(5))
                txt_4.Text = CStr(dual(4))
                txt_5.Text = CStr(dual(3))
                txt_6.Text = CStr(dual(2))
                txt_7.Text = CStr(dual(1))
                txt_8.Text = CStr(dual(0))

                For i = 7 To 0 Step -1  '
    2.  For- Schleife  ( eig nicht nötig )
                    
    txt_binaer . Text  txt_binaer . Text  dual ( i )
                
    Next
            
    Else  'Check für die Eingabe
                MsgBox("Bitte nur Zahlen von 0-255 eingeben!")
            End If
        End Sub

        '
    Programm für Dual  Dezi
        
    Private  Sub Button1_Click ( ByVal sender  As  System . Object ByVal e  As  System . EventArgs Handles Button1 . Click

            txt_binaer
    . Text  txt_1 . Text  txt_2 . Text  txt_3 . Text  txt_4 . Text  txt_5 . Text  txt_6 . Text  txt_7 . Text  txt_8 . Text

            Dim dual
    ( 0 To 7 ) As  Integer
            Dim Dez 
    As  Integer


            dual
    ( 7 ) =  CInt ( txt_1 . Text )
            
    dual ( 6 ) =  CInt ( txt_2 . Text )
            
    dual ( 5 ) =  CInt ( txt_3 . Text )
            
    dual ( 4 ) =  CInt ( txt_4 . Text )
            
    dual ( 3 ) =  CInt ( txt_5 . Text )
            
    dual ( 2 ) =  CInt ( txt_6 . Text )
            
    dual ( 1 ) =  CInt ( txt_7 . Text )
            
    dual ( 0 ) =  CInt ( txt_8 . Text )

            
    DualDezi ( dual Dez )



        
    End Sub

        
    Private  Sub Button3_Click ( ByVal sender  As  System . Object ByVal e  As  System . EventArgs Handles Button3 . Click
            txt_1
    . Text  ""
            
    txt_2 . Text  ""
            
    txt_3 . Text  ""
            
    txt_4 . Text  ""
            
    txt_5 . Text  ""
            
    txt_6 . Text  ""
            
    txt_7 . Text  ""
            
    txt_8 . Text  ""
            
    txt_dezimal . Text  ""
            
    txt_binaer . Text  ""
        
    End Sub

    End 
    Class
    Die Rechnung geht folgendermaßen: Dez = Dez + feld(i) * 2 ^ i
    Ich hoffe ich konnte Dir ein bisschen weiterhelfen.


    MfG,
    SaschaB
     
  3. #3 24. Februar 2008
    AW: Dual-/Binärzahlen in Dezimalzahlen umwandeln

    Also eine möglichkeit wäre:

    Du nimmst die Dualzahl und rechnest die letzte Stelle*2^0
    die davor*2^1
    die davor*2^2
    die davor*2^3

    usw.

    mfg
     
  4. #4 24. Februar 2008
    AW: Dual-/Binärzahlen in Dezimalzahlen umwandeln

    Ich danke euch beiden, hab es jetzt eigentlich noch ganz einfach hinbekommen
     
  5. #5 25. Februar 2008
    AW: Dual-/Binärzahlen in Dezimalzahlen umwandeln

    Weis net obs noch nützlich ist, aber in Java kannst des auch ganz einfach mit einer Methode machen: Integer.parseInt(zahl, basis)

    Also z.B.
    Code:
    String eingabe = "011010";
    int dec = Integer.parseInt(eingabe, 2); //2 -> Binär
    Wobei dann die komplette Logik vom Umwandeln flöten geht, schätze so war die Übung dann nicht gedacht
     

  6. Videos zum Thema
    Video Script
Die Seite wird geladen...

Ähnliche Themen mit den Stichworten: Java Dual Binärzahlen

  1. [Java] Breitensuche im Residualgraph
    bernd-das-brot, 3. Juni 2009 , im Forum: Programmierung & Entwicklung
    Antworten:
    3
    Aufrufe:
    1.259
  2. Antworten:
    0
    Aufrufe:
    3.771
  3. Aptana Editor alte Version von Java?
    devusr, 3. März 2018 , im Forum: Webentwicklung
    Antworten:
    7
    Aufrufe:
    4.053
  4. Antworten:
    0
    Aufrufe:
    3.958
  5. Variable aus JavaScript in PHP übergeben
    sun0025, 4. November 2016 , im Forum: Webentwicklung
    Antworten:
    6
    Aufrufe:
    3.312