Dear vigne,
"&" this is a bitwise AND Operator and it is used normally between int and int parameters.
"&&" This is logically AND Operator which is defined between two boolean Operators.
I just show you an example:
Output:0
Explanation: in Binary 10 is represented by 01010 and 20 is represented by 10100 now when you apply AND operation between them you will get 0.
Now we proceed to && Operator
Output: False.
Explaination: Because in Logical AND Operation if any single field is false then the result will be false.
I think that this example is enough for your understanding.
If any concern then revert me back.
Cheer Up Vigne