Das sollte in jedem C-Lehrbuch drin stehen. Eine Operation wird,
unabhängig vom Typ der Ergebnisvariablem, immer in dem Wertebereich
oder der Genauigkeit des "größten" Datentyps der Operanden ausgeführt,
also z. B.
int op int -> int
long op int -> long
int op long -> long
int op float -> float
float op double -> double
usw.
Wenn die Schiebeoperation also in 32 Bit (long) ausgeführt werden
soll, muss man dafür sorgen, dass mindesetens einer der Operanden long
ist. Dies erreicht man durch eine Typecast (Voranstellen von "(long)")
oder - bei Konstanten wie in diesem Beispiel - durch Anhängen eines
"L".