posted 18 years ago
I believe the issue here is a narrowing primitive conversion as part of an assignment conversion.
2 << 5 is known at compile-time, and will fit into a byte.
2 << 10 is known at compile-time, and will not fit into a byte.
The second operand to the shift operator will be reduced modulo 32 before the shift is carried out. So 2 << 32 is converted to 2 << 0 before the shift is carried out.
[ August 13, 2006: Message edited by: Keith Lynn ]