Padding is only used if there are options that are not an even 32 bits. The whole header must be divisible by 32 bits. RFC 791, Internet Protocol has the official header:
Internet Header Format
Why do we use AND?
Simply put, AND is the boolean operator that yields the result we need.
The binary AND operator allows the masking of bits that you want out of the way: 1 in the mask means 'keep', ...