[VisualBasic] Dezimal > Binär ; Binär > Dezimal

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von SaschaB, 29. Januar 2008 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 29. Januar 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    Dezimal > Binär ; Binär > Dezimal

    huhuleute,

    wie stelle ich es an eine dezimalzahl in eine binäre zahl umzuwandeln?
    und das ganze in einzelne felder auszugeben..

    [​IMG]

    wie es rechentechnisch geht weiss ich, aber wir sollen das ganze in einem feld speichern und es mit 'call by reference an die hauptfunktion 'schicken'.

    hier mal der auszug aus meinem quelltext:
    Code:
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    
     Dim rest As Integer
     Dim zusammen As Integer
     Dim eingabe As Integer = txt_eingabe.Text
     Dim dual(0 To 7) As Integer
    
     rest = 0
     zusammen = 0
    
     Do
     'Rechnung
     rest = eingabe Mod 2
     zusammen = rest & zusammen
     eingabe = eingabe \ 2
    
     Loop Until eingabe = 0
    
    
     txt_erg.Text = zusammen
    
     txt_1.Text = CStr(eingabe)
     txt_2.Text = CStr(eingabe)
     txt_3.Text = CStr(eingabe)
     txt_4.Text = CStr(eingabe)
     txt_5.Text = CStr(eingabe)
     txt_6.Text = CStr(eingabe)
     txt_7.Text = CStr(eingabe)
     txt_8.Text = CStr(eingabe)
    
    
     End Sub
    es kommt bei dez 252 immer 1111110 raus, obwohl es 11111100 sein müsste.. warum? die rchung ist doch so in ordnung.
    weiter weiss ich jetzt leider nicht, wäre nett wenn mir jemand helfen könnte.

    SaschaB
     

  2. Anzeige
  3. #2 29. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    Wenn du die Variable 'zusammen' als String deklarierst, geht es:

    Code:
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    
     Dim rest As Integer
     Dim zusammen As [COLOR="Red"]String[/COLOR]
     Dim eingabe As Integer = txt_eingabe.Text
     Dim dual(0 To 7) As Integer
    
     rest = 0
     zusammen = [COLOR="Red"]""[/COLOR]
    
     Do
     'Rechnung
     rest = eingabe Mod 2
     zusammen = rest & zusammen
     eingabe = eingabe \ 2
    
     Loop Until eingabe = 0
    
    
     txt_erg.Text = zusammen
    
     txt_1.Text = CStr(eingabe)
     txt_2.Text = CStr(eingabe)
     txt_3.Text = CStr(eingabe)
     txt_4.Text = CStr(eingabe)
     txt_5.Text = CStr(eingabe)
     txt_6.Text = CStr(eingabe)
     txt_7.Text = CStr(eingabe)
     txt_8.Text = CStr(eingabe)
    
    
     End Sub
    Jedenfalls hat es bei mir funktioniert (habs mit VB6 probiert).

    Referenzen gehen in VB so:

    Code:
    Sub AddierenMitReferenz(ByVal iZahl1 As Integer, ByVal iZahl2 As Integer, ByRef iErgebnis_Funktion As Integer)
     iErgebnis_Funktion = iZahl1 + iZahl2
    End Sub
    
    Private Sub Form_Load()
     Dim iErgebnis_Main As Integer
     
     MsgBox iErgebnis_Main '0
     
     AddierenMitReferenz 1, 1, iErgebnis_Main
     
     MsgBox iErgebnis_Main '2
    End Sub
    Ich hab die Ergebnis-Variablen unterschiedlich benannt, damit es verständlicher ist^^

    ByVal kopiert den Wert der übergebenen Variable, sodass der Wert in der Variable von der Funktion nicht geändert werden kann.

    ByRef sorgt dafür, dass der Wert in die referenzierte Variable (also die außerhalb der Funktion) geschrieben wird!

    Das musste halt jetz noch mit nem Array machen^^
     
  4. #3 29. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    :D jetzt gibt er mir 111111001 aus.. *krise bekomm* xD
    aber thx für den hinweis, hatte ich übersehen.

    /E: habs hinbekommen.. brauche jetzt nurnoch die datenfelder.. thx schonmal an der stelle :)
     
  5. #4 29. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    So, hab das mal in eine Funktion ausgelagert:

    Code:
    Private Sub Button2_Click()
     Dim iBinaer() As Integer 'Array für die Binärzahl
    
     ReDim iBinaer(0 To LaengeBinaer(252) - 1) 'Arraygröße setzen
     
     DezToBin 252, iBinaer() 'Binärzahl ins Array schreiben
     
     Dim sBinaer As String 'Variable für die Binärzahl
     
     'Variable mit Binärzahl "füllen"
     For i = UBound(iBinaer()) To 0 Step -1
     sBinaer = sBinaer & CStr(iBinaer(i))
     Next
     
     MsgBox sBinaer 'Binärzahl ausgeben
    End Sub
    
    'Funktion zur Umwandlung einer Dezimal- in eine Binärzahl
    Sub DezToBin(ByVal iDezimalzahl As Integer, ByRef iArrBinaer() As Integer)
     For i = 0 To UBound(iArrBinaer()) Step 1
     iArrBinaer(i) = iDezimalzahl Mod 2
     iDezimalzahl = iDezimalzahl \ 2
     Next
    End Sub
    
    'Funktion, um die Anzahl der Indizes im Array zu ermitteln
    Function LaengeBinaer(ByVal iDezimalzahl As Integer) As Integer
     Do
     iDezimalzahl = iDezimalzahl \ 2
     LaengeBinaer = LaengeBinaer + 1
     Loop Until iDezimalzahl = 0
    End Function
    Musste vielleicht noch an .NET anpassen :]
     
  6. #5 29. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    ohje in vb6 blick ich überhaupt nicht durch :D vorallem dieser quelltext macht mir jetzt ein bisschen zu schaffen :D vielen dank für deine mühe, aber ich muss das ganze in einer prozedure schreiben (call by reference) und mit feldern arbeiten, so wie du es gecodet hast kommen fehlermeldungen ohne ende *g*
     
  7. #6 29. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    In der Aufgabenstellung steht aber Prozeduren, also jeweils eine Prozedur für Dez -> Bin und Bin -> Dez!

    Code:
    [B]Sub[/B] DezToBin(ByVal iDezimalzahl As Integer, [B]ByRef[/B] iArrBinaer[B]()[/B] As Integer)
     For i = 0 To UBound(iArrBinaer()) Step 1
     iArrBinaer(i) = iDezimalzahl Mod 2
     iDezimalzahl = iDezimalzahl \ 2
     Next
    End Sub
    Sub = Prozedur

    ByRef = By Reference = Call By Reference

    () = Array = Feld

    Ich schau mal, ob ich irgendwo die VB 2005 Express-Edition herbekomme^^

    // Edit

    So gehts auch in .NET:

    Code:
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
     Dim iBinaer() As Integer 'Array für die Binärzahl
    
     ReDim iBinaer(0 To LaengeBinaer(252) - 1) 'Arraygröße setzen
    
     DezToBin(252, iBinaer) 'Binärzahl ins Array schreiben
    
     Dim sBinaer As String 'Variable für die Binärzahl
    
     'Variable mit Binärzahl "füllen"
     For i As Integer = UBound(iBinaer) To 0 Step -1
     sBinaer = sBinaer & CStr(iBinaer(i))
     Next
    
     MsgBox(sBinaer) 'Binärzahl ausgeben
     End Sub
    
     'Funktion zur Umwandlung einer Dezimal- in eine Binärzahl
     Sub DezToBin(ByVal iDezimalzahl As Integer, ByRef iArrBinaer() As Integer)
     For i As Integer = 0 To UBound(iArrBinaer) Step 1
     iArrBinaer(i) = iDezimalzahl Mod 2
     iDezimalzahl = iDezimalzahl \ 2
     Next
     End Sub
    
     'Funktion, um die Anzahl der Indizes im Array zu ermitteln
     Function LaengeBinaer(ByVal iDezimalzahl As Integer) As Integer
     Do
     iDezimalzahl = iDezimalzahl \ 2
     LaengeBinaer = LaengeBinaer + 1
     Loop Until iDezimalzahl = 0
     End Function
     
  8. #7 29. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    danke dir die syntax der funktion it jetzt nicht mehr das problem, eher das speichern in die felder.. momentan sieht das ganze so aus:

    Code:
    Public Class DeziDual
    
     Sub DeziDual(ByVal Dezimalzahl As Integer, ByRef Feld() As Integer)
     Dim i As Integer
     For i = 0 To 7 Step 1
    
     Feld(0) = Dezimalzahl Mod 2
     Dezimalzahl = Dezimalzahl \ 2
    
     Next
     End Sub
    
    
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    
     Dim i As Single
     Dim rest As Single
     Dim zusammen As String
     Dim eingabe As Integer = CInt(txt_eingabe.Text)
     Dim dual(0 To 7) As Integer
    
     If eingabe >= 0 Then
     If eingabe <= 255 Then
    
     zusammen = ""
    
     DeziDual(eingabe, dual)
    
     For i = 0 To 7 Step 1
    
     rest = eingabe Mod 2
     zusammen = rest & zusammen
     eingabe = eingabe \ 2
    
     Next
    
    
    
     txt_erg.Text = zusammen
    
     txt_1.Text = CStr(eingabe)
     txt_2.Text = CStr(eingabe)
     txt_3.Text = CStr(eingabe)
     txt_4.Text = CStr(eingabe)
     txt_5.Text = CStr(eingabe)
     txt_6.Text = CStr(eingabe)
     txt_7.Text = CStr(eingabe)
     txt_8.Text = CStr(eingabe)
     Else
     MsgBox("Bitte nur Zahlen von 0-255 eingeben!")
     End If
     Else
     MsgBox("Bitte nur Zahlen von 0-255 eingeben!")
     End If
    
    
     End Sub
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
     End Sub
    End Class
    
    
    
     
  9. #8 29. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    Probier es mal mit

    Code:
     Sub DeziDual(ByVal Dezimalzahl As Integer, ByRef Feld() As Integer)
     Dim i As Integer
     For i = 0 To 7 Step 1
    
     Feld([COLOR="Red"][B]i[/B][/COLOR]) = Dezimalzahl Mod 2
     Dezimalzahl = Dezimalzahl \ 2
    
     Next
     End Sub
    statt

    Code:
     Sub DeziDual(ByVal Dezimalzahl As Integer, ByRef Feld() As Integer)
     Dim i As Integer
     For i = 0 To 7 Step 1
    
     Feld(0) = Dezimalzahl Mod 2
     Dezimalzahl = Dezimalzahl \ 2
    
     Next
     End Sub
     
  10. #9 29. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    keine veränderung.. er will einfach nichts in den textboxes ausspucken ausser 0

    Spoiler
    Code:
    Public Class DeziDual
    
     Sub DeziDual(ByVal Dezimalzahl As Integer, ByRef Feld() As Integer)
     Dim i As Integer
     For i = 0 To 7 Step 1
    
     Feld(i) = Dezimalzahl Mod 2
     Dezimalzahl = Dezimalzahl \ 2
    
     txt_1.Text = Feld(0)
     txt_2.Text = Feld(1)
     txt_3.Text = Feld(2)
     txt_4.Text = Feld(3)
     txt_5.Text = Feld(4)
     txt_6.Text = Feld(5)
     txt_7.Text = Feld(6)
     txt_8.Text = Feld(7)
    
    
     Next
     End Sub
    
     Sub LaengeBinaer(ByVal Dezimalzahl As Integer, ByRef feld() As Integer)
     Do
     Dezimalzahl = Dezimalzahl \ 2
     feld(0) = 1
    
     Loop Until Dezimalzahl = 0
     End Sub
    
    
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    
     Dim i As Single
     Dim rest As Single
     Dim zusammen As String
     Dim eingabe As Integer = CInt(txt_eingabe.Text)
     Dim dual(0 To 7) As Integer
    
     If eingabe >= 0 Then
     If eingabe <= 255 Then
    
    
     zusammen = ""
    
    
    
    
     For i = 0 To 7 Step 1
    
     rest = eingabe Mod 2
     zusammen = rest & zusammen
     eingabe = eingabe \ 2
    
    
     Next
    
     DeziDual(eingabe, dual)
    
     txt_erg.Text = zusammen
    
    
    
     Else
     MsgBox("Bitte nur Zahlen von 0-255 eingeben!")
     End If
     Else
     MsgBox("Bitte nur Zahlen von 0-255 eingeben!")
     End If
    
    
     End Sub
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
     End Sub
    End Class
    
    
     
  11. #10 29. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    // Edit

    Jetz hast du wieder was neues reineditiert, mom^^

    // Edit2

    Kannst du mir mal dein Projekt hochladen? Hab keine Lust, jedesmal die ganzen Textboxen zu erstellen (ich vergess immer zu speichern :D)
     
  12. #11 29. Januar 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
  13. #12 29. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    Code:
    Public Class DeziDual
    
     Sub DeziDual(ByVal Dezimalzahl As Integer, ByRef Feld() As Integer)
     For i As Integer = 0 To 7 Step 1
    
     Feld(i) = Dezimalzahl Mod 2
     Dezimalzahl = Dezimalzahl \ 2
    
     Next
     End Sub
    
     Sub LaengeBinaer(ByVal Dezimalzahl As Integer, ByRef feld() As Integer)
     Do
     Dezimalzahl = Dezimalzahl \ 2
     feld(0) = 1
    
     Loop Until Dezimalzahl = 0
     End Sub
    
    
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    
     Dim eingabe As Integer = CInt(txt_eingabe.Text)
     Dim dual(0 To 7) As Integer
    
     If eingabe >= 0 And eingabe <= 255 Then
    
     DeziDual(eingabe, dual)
    
     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 As Integer = 7 To 0 Step -1
     txt_erg.Text = txt_erg.Text & CStr(dual(i))
     Next
     Else
     MsgBox("Bitte nur Zahlen von 0-255 eingeben!")
     End If
     End Sub
    End Class
    Bitteschön :cool:
     
  14. #13 29. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    juhu es geht x) vielen dank..
    habe gesehen wo meine fehler waren^^ muss die noch überarbeiten..

    und jetzt kommenw ir zum schwierigeren teil.. vom binärsystem ins dezimalsystem.. da werde ich mal die rechnungen raussuchen und probieren.. melde mich wieder wenns probleme gibt. danke schonmal bis hier hin.. bewertung kommt die nächsten tage :)


    SaschaB
     
  15. #14 29. Januar 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Dezimal > Binär ; Binär > Dezimal

    5min-Arbeit^^
    No File | xup.in

    //EDiT: Die MaskedTextBox'en sind etwas unpraktisch gewählt, und Fehlerüberprüfung ist nur rudimentär... aber es geht
     
  16. #15 29. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    danke aber das verfahren ist mir immernoch nicht klar..
     
  17. #16 30. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    Jede Stelle hat die Wertigkeit 2^x, wobei x die Stellenanzahl von rechts angibt (beginnt bei 0):

    Binärzahl: 110

    Wertigkeit 3. Stelle: 2^0
    Wertigkeit 2. Stelle: 2^1
    Wertigkeit 1. Stelle: 2^2

    Dann addierst du die Wertigkeit mit 1 oder 0, jenachdem, was an der Stelle steht:

    Stelle 3 ist 0 -> 0 * 2^0 = 0 * 1 = 0
    Stelle 2 ist 1 -> 1 * 2^1 = 1 * 2 = 2
    Stelle 1 ist 1 -> 1 * 2^2 = 1 * 4 = 4

    Dann addierst du die Ergebnisse:

    0 + 2 + 4 = 6

    Fertig :]
     
  18. #17 30. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    also soll man die textbox 8 als 2^0, textbox 7 als 2^1, usw erstmal deklarieren? und wie prüfe ich ob da eine 1 oder 0 steht und wie springe ich zur nächsten linken stelle?

    if txt_8.text = 0
    dann speicher das und addiere mit den anderen
    endif

    oder wie kann ich mir das vorstellen?
     
  19. #18 30. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    razor90 hat dir doch ein Beispiel gemacht, schaus dir halt mal an^^
     
  20. #19 30. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    Code:
     Function DualDezi(ByRef iArrBinaer() As Integer) As Integer
     Dim i As Integer
     For i = 1 To 8
     DualDezi += iArrBinaer(8 - i) * (2 ^ (i - 1))
     Next
     End Function
    
     Private Sub btnDual_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDual.Click
     Dim iBin(7) As Integer
     Dim i As Integer
    
     For i = 0 To Len(txtDual.Text) - 1
     iBin(i) = Mid(txtDual.Text, i + 1, 1)
     Next
    
     Dim iDez As Integer = DualDezi(iBin)
    
     txtDez.Text = iDez
    
     End Sub
    ich habe das ganze ein wenig umgeschrieben:

    /E: fehler beseitigt. nun kommt aber eine vollkomen falsche zahl raus. was habe ich falsch gemacht?

    Code:
     Sub DualDezi(ByRef feld() As Integer)
     Dim i As Integer
     Dim dualdezi As Integer
    
     For i = 0 To 7
     dualdezi += (CInt(8 - i * (2 ^ (i - 1))))
     txt_eingabe.Text = CStr(dualdezi)
     Next
     End Sub
    
     'Programm für Dual > Dezi
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Dim dual(0 To 7) As Integer
    
     Dim i As Integer
    
     txt_erg.Text = CStr(txt_1.Text & txt_2.Text & txt_3.Text & txt_4.Text & txt_5.Text & txt_6.Text & txt_7.Text & txt_8.Text)
    
     For i = 0 To Len(txt_erg.Text) Step -1
     dual(i) = CInt(Mid(txt_erg.Text, i + 1, 1))
     Next
    
     DualDezi(dual)
     End Sub
    bei der eingabe unten: 11111100 kommt -705 raus...
     
  21. #20 30. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    // Edit

    Hab das alte in einen Spoiler gepackt, sonst wirds zu unübersichtlich^^

    Spoiler
    Steht doch da: ein Parameter fehlt (binaerzahl in der Prozedur DualDezi).

    Mit ByVal bringt die binaerzahl sowieso nichts. Außerdem: wieso nennst du die Variable binaerzahl und nicht iDezimalzahl?

    Naja egal.

    Du müsstest das also entweder mit ByRef machen:

    Code:
    Sub DualDezi(ByRef feld() As Integer, [B]ByRef[/B] binaerzahl As Integer)
     Dim i As Integer
     For i = 0 To 7
     binaerzahl += feld(CInt(8 - i * (2 ^ (i - 1))))
     Next
    End Sub
    und das ganze dann so aufrufen:

    Code:
    Dim idez As Integer
     DualDezi(dual, idez)
    .
    .
    .
    Dann wird die Dezimalzahl in idez geschrieben.

    Oder du machst es so wie razor90 als Funktion (so würde man es normalerweise machen):

    Code:
    [B]Function[/B] DualDezi(ByRef iArrBinaer() As Integer) As Integer
     Dim i As Integer
     For i = 1 To 8
     [B]DualDezi[/B] += iArrBinaer(8 - i) * (2 ^ (i - 1))
     Next
    End Function
    Eine Funktion gibt einen Wert zurück, den du dann direkt in eine Variable speichern kannst. Somit brauchst du keine Variable mit ByRef übergeben.

    So gehts:

    Code:
     Sub DualDezi(ByRef feld() As Integer)
     Dim i As Integer
     Dim dualdezi As Integer
    
     For i = UBound(feld) To LBound(feld) Step -1
     dualdezi += feld(i) * (2 ^ (i - 1))
     Next
    
     txt_eingabe.Text = CStr(dualdezi)
     End Sub
    
     'Programm für Dual > Dezi
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Dim dual(0 To 7) As Integer
    
     Dim i As Integer
    
     txt_erg.Text = CStr(txt_1.Text & txt_2.Text & txt_3.Text & txt_4.Text & txt_5.Text & txt_6.Text & txt_7.Text & txt_8.Text)
    
     For i = 1 To Len(txt_erg.Text) Step 1
     dual(i) = CInt(Mid(txt_erg.Text, i, 1))
     Next
    
     DualDezi(dual)
     End Sub
     
  22. #21 30. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    Code:
    Public Class DeziDual
    
     'Prozedure für Dezi > Dual
     Sub DeziDual(ByVal Dezimalzahl As Integer, ByRef Feld() As Integer)
     Dim i As Integer
     'For Schleife (läuft 8x)
     For i = 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)
     Dim i As Integer
     Dim DualDezi As Integer
    
     For i = UBound(feld) To LBound(feld) Step -1
     DualDezi += feld(i) * (2 ^ (i - 1))
     txt_dezimal.Text = CStr(DualDezi)
     Next
     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 >= 0 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
     Dim dual(0 To 7) As Integer
     Dim i As Integer
    
     txt_binaer.text = CStr(txt_1.Text & txt_2.Text & txt_3.Text & txt_4.Text & txt_5.Text & txt_6.Text & txt_7.Text & txt_8.Text)
    
     For i = 1 To Len(txt_binaer.Text) Step -1
     dual(i) = Mid(txt_binaer.Text, i, 1)
     Next
    
     DualDezi(dual)
     End Sub
    End Class
    bei der ausgabe der dezimalzahl kommt 0 raus.. wo liegt der fehler?^^

    und eine kleine frage.. was bewirken ubound und lbound in der for schleife ?
     
  23. #22 30. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    ubound() gibt die Obergrenze, lbound() die Untergrenze eines Array zurück.
     
  24. #23 30. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    d.h. ubound wäre 8 und lbound wäre 1 ? ^^
     
  25. #24 30. Januar 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Dezimal > Binär ; Binär > Dezimal

    Normalerweise ist lbound 0.

    No File | xup.in
    Hier, habs verbessert und mit Kommentaren versehen; vllt. verstehst du es dann ;)
     
  26. #25 30. Januar 2008
    AW: Dezimal > Binär ; Binär > Dezimal

    vielen dank ich habs jetzt verstanden :D es funktioniert auch jetzt einwandfrei.. muss mir das alles nochmal gucken..
    noch eine kleine frage habe ich:
    in meiner form sind 8 textboxes.. diese möchte ich zu einer dualen zahl zusammenfassen.. und das mache ich doch normalerweise mit:

    Code:
    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
    aber wenn ich in die 8 boxes was reinschreibe rechnet der nichts, sondern gibt oben einfach nur 0 aus.. irgendwas stimmt da nicht ^^

    /E: problem hat sich gelöst.. habs ganz nach oben geschrieben.
    danke an alle die mir geholfen haben udn duldig mit mir waren :D eine bewertung habt ihr euch lediglich verdient :D


    SaschaB
     

  27. Videos zum Thema
Die Seite wird geladen...