Explanation : The left shift operator <<, pushes out the most significant (left-most) bit. If it happens to be a 1, a << 1, will not be same as multiplying a by 2
Explanation : The sum (or bit-wise OR) of a number and its complement will be all 1's. How many 1's depends on how many bits are needed to represent the number. The sum is 220 - 1. then the sizeof(int) in bits must be 20.