In C, assuming unsigned or two’s complement, !~x or ~x == 0 serves as a bitwise AND; it is 1 if and only if each bit of x is 1.
!!x or x != 0 serves as a bitwise OR; it is 1 if any bit of x is 1.
The negations, not properly called NAND or NOR since they do not apply a NAND or NOR in a bitwise fashion but rather apply a NOT to the bitwise AND or OR, are simply !!~x or ~x != 0 and !x or x == 0.
There is no bitwise XOR in the operations specified by the C standard. GCC has __builtin_parity which can provide this.
The above apply to the full width of x. Narrower widths can be implemented by setting the extra bits to identity elements (1 for AND, 0 for OR and XOR).
&and 4 bits this is justx==15.|would bex!=0. No general equivalent though.