Gast
#915188
x = (unsigned long) ( 0x1 << ((a-1)%b)) ; y = 0x1ul << ((a-1)%b) ; Hallo, der zweite Ausdruck (Keil-Compiler, C für 8051) funktioniert einwandfrei. Warum funktioniert der erste Ausdruck nicht? Ist der 'cast' nicht auch eine Aufforderung an den Compiler den Ausdruck in 'unsigned long' zu berechnen? Martin