Wobei die Zählung der einzelnen Bits üblicherweise von 0 bis 7 geht. Meist geht die Zählung von rechts (0) nach links (7). Wenn das Bit an Position 0 (das niedrigstwertigste Bit lsb) gesetzt ist, also
00000001 = 1 (Dezimal), wenn das Bit an Position 7 (das höchstwertigste Bit msb) gesetzt ist, also
10000000 = 128 (Dezimal)
lsb = least significant bit (Kleinschreibung)
msb = most significant bit (Kleinschreibung)
Bei Großschreibung (
LSB, MSB) geht es üblicherweise um die Byte-Reihenfolge.
Achtung, die Zählung kann auch von links beginnen! Um Irrtümer auszuschließen, sollte das angegeben werden.
Hier noch eine Möglichkeit herauszufinden, ob ein Bit gesetzt ist:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Var b, position:Byte; begin b:=0; IF (b SHR Position) AND 1 <> 0 then ShowMessage('Bit gesetzt'); end. |
... und eine Möglichkeit ein Bit zu setzen
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| Var b, position:Byte; begin b:=0; b := b OR (1 shl Position); end. |
Gruß