&& and & mean two very different things and give you two different answers.
1 && 2 yields 1 ("true")
1 & 2 yields 0 ("false")
&& is a logic operator -- it means "true if both of the operands are true"
& is a bitwise comparison. It means "tell me which of the bits are set in both of the operands"