cast negative shift to long explicitly