Rubrik: Variablen/Strings · Algorithmen/Mathematik | VB-Versionen: VB.NET | 11.06.04 |
Dezimalzahl zu Binärezahl (Dualzahl) und umgekehrt Diese Klasse wandelt eine Dezimalzal in eine Binärzahl um und umgekehrt. | ||
Autor: Michael Fuhrer | Bewertung: | Views: 15.983 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Dieser Tipp zeigt, wie mal eine Dezimalzahl in eine Binärzahl umrechnen kann und umgekehrt.
Zunächst einmal die benötigte Klasse mit den zwei benötigten Umrechnungs-Funktionen:
Public Class clsBinär Private Const binärBasis As Byte = 2 ' Rückgabewert: angefangen vom niedrigen Bit Public Function binäreZahl(ByVal DezimalZahl As String) As String If Not IsNumeric(DezimalZahl) Then Exit Function Dim Rest As String = 0 Dim tmpBinäreZahl As String = "" Try Do ' Dezimalzahl durch die binäre Basis teilen Rest = Fix(DezimalZahl / binärBasis).ToString tmpBinäreZahl &= (DezimalZahl - (Rest * binärBasis)).ToString DezimalZahl = Rest Loop Until Rest <= 0 Return tmpBinäreZahl Catch Return "" End Try End Function Public Function dezimalZahl(ByVal binäreZahl As String) As String If Not IsNumeric(binäreZahl) Then Exit Function Dim tmpBinZahl As Byte = 0 Dim tmpDezZahl As String = 0 Dim addValue As String = 1 Try For i As Integer = 0 To binäreZahl.Length - 1 tmpBinZahl = CByte(binäreZahl.Chars(i).ToString) If tmpBinZahl = 1 Then If i = 0 Then tmpDezZahl = addValue Else tmpDezZahl += addValue * binärBasis End If End If If i > 0 Then addValue *= binärBasis Next i Return tmpDezZahl Catch Return "" End Try End Function End Class
Anwendungsbeispiel der Klasse:
Fügen Sie zwei Buttons auf die Form (Button1 und Button2), sowie zwei Textbox-Controls (TextBox1 und TextBox2). Für die Umrechnung muss zunächst muss ein neues Objekt erstellt werden.
' gehört in den Deklarations-Teil der Form Dim b As New clsBinär
In das Button1_Click-Ereigniss setzen Sie nachfolgenden Code:
' Binärzahl ermitteln und in TextBox2 ausgeben TextBox2.Text = b.binäreZahl(TextBox1.Text)
In das Button2_Click-Ereigniss setzen Sie diesen Code:
' Dezimalzahl ermitteln MsgBox(b.dezimalZahl(TextBox2.Text))