http://www.digitalmars.com/d/expression.html#ShiftExpression It's illegal to shift by more bits than the size of the quantity being shifted. That means, 32 is legal for shifting. And therefore it should evaluate to the correct result. So I think the example is a bug.