Oha, das ist ja sehr clever mit der Bitschieberei in for(). Ich hatte bisher ein Array mit den Wertigkeiten definiert und den Schleifenzähler als Index verwendet:
bits[]={1,2,4,8,16...128}
for(bitnr=0; bitnr<8; bitnr++) x=bit[bitnr];

Man lernt eben immer dazu wenn man hier mitliest...