http://www.perlmonks.org?node_id=470415


in reply to Re: Bit operations for beginners
in thread Bit operations for beginners

For two inputs, there are 16 operations. Most of them are rarely useful, which is why we don't have Perl operators for them.

By the way, everything can be implemented solely with nand:

p | q | p nand q ---+---+---------- 0 | 0 | 1 0 | 1 | 1 1 | 0 | 1 1 | 1 | 0 not p === p nand p p and q === (p nand q) nand (p nand q) p or q === (p nand p) nand (q nand q) p xor q === (p nand (q nand q)) nand ((p nand p) nand q)

Other operatations could also be used instead of nand. nor, for example:

p | q | p nor q ---+---+--------- 0 | 0 | 1 0 | 1 | 0 1 | 0 | 0 1 | 1 | 0 ~(p nor q) not p === p nor p p and q === (p nor p) nor (q nor q) p or q === (p nor q) nor (p nor q) p xor q === [something very long]