vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
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:  Views:  20.083 
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



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.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle 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.