Hmm, that is a common C operation.
Yes, the compiler is told to treat that
1 long long so that the
<< b shift operation can shift that
1 zero to 63 positions left.
After I discovered my mistake about the implicit
(int)1 I left the old post unchanged but added the update to the top and added the comment and the correctly working solution.