vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Variablen/Strings · Algorithmen/Mathematik   |   VB-Versionen: VB4, VB5, VB620.07.04
Binäre Funktionen...

Funktionen rund um Binäre Zahlen / Werte

Autor:   David HorchBewertung:     [ Jetzt bewerten ]Views:  20.055 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Es ist mal ganz interessant zu sehen, welchen binären (dualen) Wert eine Zahl hat.
Nachfolgende Funktionen rechnen

  • den binären Wert eines Bytes (8 bit) in eine 8-stellige Zeichenfolge um
  • den binären Wert einer Integerzahl (16bit) in eine 16-stellige Zeichenfolge um
  • den binären Wert einer Long-Zahl (32bit) in eine 32-stellige Zeichenfolge um
  • den dezimalen Wert einer 8-stelligen Zeichenfolge (1/0) in ein Byte um.

Die Funktionen groß zu erklären ist, glaube ich, ist nicht so wichtig

' binären Wert eines Bytes in 
' eine 8-stellige Zeichenfolge umwandeln
Function Bits(ByVal Value As Byte) As String
  Dim strOut As String
  Dim i As Long
 
  For i = 1 To 8 ' 8 bits
     strOut = strOut & (Value And 1)
     Value = Value \ 2 ' Integerdivision
  Next i
 
  Bits = StrReverse(strOut)
End Function
' binären Wert einer Integerzahl in 
' eine 16-stellige Zeichenfolge umwandeln
Function BitsInt(ByVal Value As Integer) As String
  Dim strOut As String
  Dim negValue As Integer
  Dim i As Long
 
  If Value < 0 Then
    negValue = Value
    Value = Value Xor &H8000
  End If
  For i = 1 To 16
    strOut = strOut & (Value And 1)
    Value = Value \ 2
  Next i
  If negValue Then Mid$(strOut, 16) = 1
 
  BitsInt = StrReverse(strOut)
End Function
' binären Wert einer Long-Zahl in 
' eine 32-stellige Zeichenfolge umwandeln
Function BitsLng(ByVal Value As Long) As String
  Dim strOut As String
  Dim negValue As Long
  Dim i As Long
 
  If Value < 0 Then
    negValue = Value
    Value = Value Xor &H80000000
  End If
  For i = 1 To 32
   strOut = strOut & (Value And 1)
   Value = Value \ 2
  Next i
  If negValue Then Mid$(strOut, 32) = 1
 
  BitsLng = StrReverse(strOut)
End Function
' Dezimal-Wert einer 8-stelligen Zeichenfolge
' in ein Byte umwandeln
Function BitsToByte(ByVal Bits As String) As Byte
  Dim Out As Byte
  Dim x As Byte
  Dim i As Long
 
  If Len(Bits) > 8 Then
    Err.Raise 6, , "Der Bitstring darf höchstens 8 Zeichen (0 oder 1) enthalten!" & _
      Chr(13) & "(""" & Bits & """)"
  End If
  If Len(Bits) < 8 Then Bits = String(8 - Len(Bits), "0") & Bits
  Bits = StrReverse(Bits)
  For i = 0 To 7
    x = Mid$(Bits, i + 1, 1)
    Out = Out + x * 2 ^ i
  Next i
 
  BitsToByte = Out
End Function

Dieser Tipp wurde bereits 20.055 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel