Left-bit-shifting long values produces different results in 32-bit
and 64-bit modes. The examples in
Table 1 show the effects of performing a bit-shift on long
constants, using the following code segment:
long l=valueL<<1;
Table 1. Results of bit-shifting
long values| Initial value |
Symbolic constant |
Value after bit shift |
| 32-bit mode |
64-bit mode |
| 0x7FFFFFFFL |
INT_MAX |
0xFFFFFFFE |
0x00000000FFFFFFFE |
| 0x80000000L |
INT_MIN |
0x00000000 |
0x0000000100000000 |
| 0xFFFFFFFFL |
UINT_MAX |
0xFFFFFFFE |
0x1FFFFFFFE |