Seite 1 von 1

Bit-Felder in Python

Verfasst: Dienstag 26. Oktober 2010, 09:05
von stwe85
Hi, ich habe ein Feld in dem ich einen numerischen Wert speichere (BIT Feld)

Dazu gibt es virtuelle Chekboxen (ohne gespeicherte Werte) die den Wert des Bit Feldes berechnen bzw. ergeben.
Die Eingabe in das BIT Feld ist nicht mein Problem, sondern die Ausgabe beim lesen.

Bsp.:
BIT-Feld Werte:
1 ckbx_1
2 ckbx_2
4 ckbx_3
16 ckbx_4

Aktueller Bitfeld Wert: 21 --- somit müssten ckbx_1, ckbx_3 und ckbx_4 aktiv sein

Die Chekboxen sollen prüfen ob "ihr Wert" im Bitfeld drinsteht ... könnt ihr mir da weiterhelfen?

Re: Bit-Felder in Python

Verfasst: Dienstag 26. Oktober 2010, 09:08
von /me
stwe85 hat geschrieben: BIT-Feld Werte:
1 ckbx_1
2 ckbx_2
4 ckbx_3
16 ckbx_4

Aktueller Bitfeld Wert: 21 --- somit müssten ckbx_1, ckbx_3 und ckbx_4 aktiv sein
Irgendwie fehlt da noch die 8.

Aber ansonsten:

Code: Alles auswählen

>>> 21 & 16
16
>>> 21 & 2
0
Edit: hier versagt der Code-Parser anscheinend beim Kaufmanns-Und.

Re: Bit-Felder in Python

Verfasst: Dienstag 26. Oktober 2010, 09:28
von BlackJack
Wenn man das Code-Highlight weglässt, kann man das ``&`` als solches lesen:

Code: Alles auswählen

In [74]: [21 & i for i in [1, 2, 4, 16]]
Out[74]: [1, 0, 4, 16]

In [75]: [21 & i != 0 for i in [1, 2, 4, 16]]
Out[75]: [True, False, True, True]

Re: Bit-Felder in Python

Verfasst: Dienstag 26. Oktober 2010, 09:34
von stwe85
die 8 ... richtig :)

und Vielen Dank für die Hilfe funktioniert einwandfrei :)