Which part is confusing?
The docs state that unsigned C integers are used when use integer is not used. 2147483648 * 2 is 4294967296, and 4294967296 doesn't fit in a 32 bit unsigned int (presuming you are using a 32 bit system). Therefore, this is an overflow situation.
Futhermore, the docs also state: "The result of overflowing the range of the integers is undefined because it is undefined also in C." That means 2147483648 << 1 can return anything, and you can't rely on it always returning 1.
In reply to Re: Left shift operation done more than 32 times
by ikegami
in thread Left shift operation done more than 32 times
by jesuashok
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |