Von Sculpture bekam ich den Tipp die 2-Byte in eine
Long-Variable (TmpLong)
einzulesen und dann folgendes zu berechnen:
TmpLong AND 4095
Das klappt auch soweit, allerdings nur wenn in den Bits 0-12
Werte 2 (Dezimalsystem)
2 hoch 3 => 8 (Dezimalsystem)
Summe = 10 (Dezimalsystem)
Sind alle Bits geschaltet, so ergibt sich
2 hoch 0 => 1
2 hoch 1 => 2
…
2 hoch 7 => 128
Summe = 255
Ob ein bestimmtes Bit geschaltet ist, kannst du über die „AND“-Funktion ermitteln. Bei der zweiten Bitleiste würde
„If TmpLong and 10 …“ ergeben, daß die Bits 1 und 3 geschaltet sind. „If TmpLong and 2 …“ würde ergeben, daß das Bit 1 geschaltet ist (ohne Berücksichtigung des ebenfalls geschalteten Bits 3). „If TmpLong and 8“ würde ergeben, daß das Bit 3 geschaltet ist (und das Bit 1 würde nicht berücksichtigt).
Willst du nun die Konstellation der Bitleiste insgesamt überprüfen, müßtest du die 12 Bits in einer Schleife o.ä. abarbeiten und das Ergebnis entsprechend auswerten. Dann dürften auch keine Probleme mit größeren Werten auftreten:
Bsp.:
For lCount = 0 to 11
If TmpLong And 2^lCount Then
[Verarbeite irgendwas]
End If
Next lCount
Hope It Helps!
Siegfried