I'm not sure there is a "laymans" terms explanation for this. A single & is a bitwise and. This means it will go through the left and right, compare them bit by bit and the result is determined by the and function:
In your example src1 is $mode, src2 is 07777 and dest is $perms. This is mostly used to zero out bits, or mask off portions of bits.
The bitwise or operator, |, is used to set bits in a bit-string.
Hope this helped.