Just do (int)myLongValue. It’ll do exactly what you want (discarding MSBs and taking LSBs) in unchecked context (which is the compiler default). It’ll throw OverflowException in checked context if the value doesn’t fit in an int:
int myIntValue = unchecked((int)myLongValue);