Seite 1 von 1

Bits vom byte überprüfen ob gesetzt

Verfasst: 20.02.2010 20:45
von super_castle
Wie kann man die Bits hintereinander vom Byte überprüfen ob die gesetzt sind?
Bitset oder ähnliches konnte ich nicht finden.

Gruss

Re: Bits vom byte überprüfen ob gesetzt

Verfasst: 20.02.2010 20:53
von WPö

Code: Alles auswählen

for i=7 to 0
  if (Byte.l & (1<<i))
    ;Bit gesetzt
  else
    ;Bit gelöscht
  endif
next i

Re: Bits vom byte überprüfen ob gesetzt

Verfasst: 20.02.2010 21:05
von super_castle
Jup, danke.

Ich suchte vergeblich nach einem Bitbefehl .

Gruss

Re: Bits vom byte überprüfen ob gesetzt

Verfasst: 20.02.2010 21:12
von super_castle
Kommt irgendwie kein Ergebnis im Debugger, wie kommt das?

Code: Alles auswählen

wert.l=128
      For i=7 To 0
        If (wert.l & (1<<i))
          Debug 1
        Else
          Debug 0
        EndIf
      Next i
Gruss

Re: Bits vom byte überprüfen ob gesetzt

Verfasst: 20.02.2010 21:13
von RSBasic

Code: Alles auswählen

wert.l=128
      For i=7 To 0 Step -1
        If (wert.l & (1<<i))
          Debug 1
        Else
          Debug 0
        EndIf
      Next i

Re: Bits vom byte überprüfen ob gesetzt

Verfasst: 20.02.2010 23:37
von super_castle
Au man, scheiss Spiel.... :D

Jup, danke.

Gruss

Re: Bits vom byte überprüfen ob gesetzt

Verfasst: 20.02.2010 23:43
von Kai
Nochma ne umständliche Methode :mrgreen:

Code: Alles auswählen

#Bit1 = 1
#Bit2 = 2
#Bit3 = 4
#Bit4 = 8
#Bit5 = 16
#Bit6 = 32
#Bit7 = 64
#Bit8 = 128

value.b = #Bit2|#Bit3|#Bit6

If(value & #Bit1)
  Debug "Bit 1"
EndIf
If (value & #Bit2)
  Debug "Bit 2"
EndIf
If (value & #Bit3)
  Debug "Bit 3"
EndIf
If (value & #Bit4)
  Debug "Bit 4"
EndIf
If (value & #Bit5)
  Debug "Bit 5"
EndIf
If (value & #Bit6)
  Debug "Bit 6"
EndIf
If (value & #Bit7)
  Debug "Bit 7"
EndIf
If (value & #Bit8)
  Debug "Bit 8"
EndIf