Rubrik: Variablen/Strings · Algorithmen/Mathematik | VB-Versionen: VB5, VB6 | 07.01.05 |
Zahl ins Binärformat und zurück konventieren Zwei Konventionsroutinen zum Umwandeln von 32-Bit Ganzzahlen und Binärzahlen. | ||
Autor: Martin Walcher | Bewertung: | Views: 12.976 |
www.martinwalcher.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Häufig ist es nützlich, wenn man Dezimalzahlen auch ins Binärformat umwandeln kann. So kann man z.B. 8 Boolean-Variablen (Wahr/Falsch) in nur einem Byte (8 Bit) speichern. Zusätzlich sind noch Optionen zum Runden und Gruppieren vorhanden.
' Konventiert eine 32-Bit Zahl (Long) in das Binärformat (String) Private Function val2bin(ByVal zahl As Long, _ Optional ByVal kuerzen As Boolean = True, _ Optional ByVal zifferngruppierung As Boolean = True) As String Dim tmp As Byte Dim i As Long For i = 1 To 4 * 8 tmp = zahl And 1 val2bin = tmp & val2bin zahl = (zahl - tmp) / 2 Next If zifferngruppierung And kuerzen Then _ val2bin = Format(val2bin, "#### #### #### #### #### #### #### ###0") If zifferngruppierung And Not kuerzen Then _ val2bin = Format(val2bin, "0000 0000 0000 0000 0000 0000 0000 0000") If Not zifferngruppierung And kuerzen Then _ val2bin = Format(val2bin, "0") End Function
' Konventiert eine Binärzahl (String) in eine 32-Bit Zahl (Long) Private Function bin2val(ByVal bin As String) As Long Dim i As Long bin = replace(bin, " ", "") For i = 1 To Len(bin) bin2val = bin2val * 2 bin2val = bin2val + Mid(bin, i, 1) Next End Function