No, you don't. The bitwise shifting operator has a higher precedence than the bitwise or does. You may test it with this programm:
#include <stdio.h>
int main(int agrc, char** argv) { int iTest = 0x42 << 7 | 0x02; int iTest1 = (0x42 << 7) | 0x02; int iTest2 = 0x42 << (7 | 0x02);
printf("iTest: %d; iTest1: %d, iTest2: %d\n", iTest, iTest1, iTest2);
return 0; }
I get the following output(compiled with gcc 3.3.5): iTest: 8450; iTest1: 8450, iTest2: 8448
Greetings, Johannes