C++-Programmierung/ Nützliches/ Bitfelder

Aus Wikibooks


Um aus einer Bitfolge gewisse Werte herauszuholen ist es üblich, Bitfelder zu verwenden. Diese beinhalten für jeden Zweck einen konstanten Wert und werden verwendet, um andere Informationen in der Bitfolge auszuschalten. Fangen wir damit an, die Bits von rechts nach links zu zählen und dabei mit 0 zu beginnen. Sind dann z.B. die Bits 2 bis 7 von Interesse, so geht man wie folgt vor:

const short sMASK = 252;   // = 0000.0000.1111.1100;
short sStatus = 99;        // = 0000.0000.0110.0011
//
sStatus = sStatus & sMASK; // Man kann auch sStatus &= sMASK schreiben
//
if (sStatus == 204)        // = 1100.1100, wo jedes Bit eine Bedeutung hat
  ...