Regardless of endianness, bitshifting and other operations always behave as if they are big-endian. So small numbers are on the right, and big ones are on the left. Also the bit for signedness is on the left.
My question is where does it explicitly say that this is like this? My copy of the C11 draft doesn't even mention endianness, and in the bitwise part there is some math expressions that I don't understand, so I'm not sure where this part is.
It follows directly from the description of the bitwise shift operators that the result does not depend on how integers are stored.
The C11 Standard (6.5.7 Bitwise shift operators)
4 The result of E1 << E2 is E1 left-shifted E2 bit positions; vacated bits are filled with zeros. If E1 has an unsigned type, the value of the result is E1 × 2E2, reduced modulo one more than the maximum value representable in the result type. If E1 has a signed type and nonnegative value, and E1 × 2E2 is representable in the result type, then that is the resulting value; otherwise, the behavior is undefined.
5 The result of E1 >> E2 is E1 right-shifted E2 bit positions. If E1 has an unsigned type or if E1 has a signed type and a nonnegative value, the value of the result is the integral part of the quotient of E1 / 2E2. If E1 has a signed type and a negative value, the resulting value is implementation-defined.
Otherwise there would be a note in the C Standard relative to the way integers are stored in memory.