Apple sometimes uses the Bitwise-Shift operator in their enum definitions. For example, in the CGDirectDisplay.h file which is part of Core
This way you can add multiple flags together to create a "set" of flags and can then use & to find out whether any given flag is in such a set.
You couldn't do that if it simply used incrementing numbers.
Example:
int flags = kCGDisplayMovedFlag | kCGDisplaySetMainFlag; // 6
if(flags & kCGDisplayMovedFlag) {} // true
if(flags & kCGDisplaySetModeFlag) {} // not true