&& (as Ajay recommends) is the logical AND operator. Each operand is first reduced to True or False, then the result is computed.
& is bitwise and: it simply performs a binary and on the original values. If these don't happen to both have 1 in at lease one bit position, the result is still zero.
E.g
1 && 2 == 1
whereas
1 & 2 == 0