PeekBit() ?
Verfasst: 21.10.2005 21:27
moin
ich will mir einen Zeichensatzt mit 6Bit proggen
aber weiss nicht wie ich Bit's auslessen kan
ich will mir einen Zeichensatzt mit 6Bit proggen
aber weiss nicht wie ich Bit's auslessen kan
Code: Alles auswählen
Procedure.l SetBit(nValue.l, nBitNumber.l, nBoolean.l)
nBitNumber = 1 << nBitNumber
If nBoolean
ProcedureReturn nValue | nBitNumber
Else
ProcedureReturn (nValue | nBitNumber) & ~nBitNumber
EndIf
EndProcedure
Procedure.l TestBit(nValue.l, nBitNumber.l)
If nValue & (1 << nBitNumber)
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedureSetBit()
Syntax
Result = SetBit(Value.l, BitNumber.l Flag.l)
Beschreibung
Setzt das Bit im Wert auf den Wert von Flag (1 oder 0).
TestBit()
Syntax
Result = TestBit(Value.l, BitNumber.l)
Beschreibung
Prüft, ob das angegebene Bit im Wert gesetzt ist
Code: Alles auswählen
Procedure.l SetBit(nValue.l, nBitNumber.l, nBoolean.l)
nBitNumber = 1 << nBitNumber
If nBoolean
ProcedureReturn nValue | nBitNumber
Else
ProcedureReturn (nValue | nBitNumber) & ~nBitNumber
EndIf
EndProcedure
Procedure.l TestBit(nValue.l, nBitNumber.l)
If nValue & (1 << nBitNumber)
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
a = %1111
Debug Bin(a)
a = SetBit(a, 0, 0) ; letztes Bit von a auf 0 Setzen
Debug Bin(a)
If TestBit(a, 0) ; dürfte nicht kommen
MessageRequester("", "letztes Bit von a gesetzt: a=" + Bin(a))
Else ; diese Meldung sollte kommen
MessageRequester("", "letztes Bit von a nicht gesetzt: a=" + Bin(a))
EndIf
Also du hast eine Folge von 6-Bit-Einheiten über die Byte-Grenzen hinweg?IcedCoffee hat geschrieben:... weil ich will nur 100010 im ram haben [2bit weniger] damit ich gleich danach meine nächte zahl schreiben kann
Code: Alles auswählen
Zeichen = PeekL(*Pointer) & Maske
Code: Alles auswählen
Maske << 6
Zeichen = PeekL(*Pointer) & Maske
Zeichen >> 6