MSDN has documentation on all the C# operators at:
http://msdn.microsoft.com/en-us/library/6a71f45d.aspx
EDIT - Jon B commented that a relevant quote from the linked documentation would be useful.
| is the Logical OR operator.
Binary | operators are predefined for the integral types and bool. For integral types, | computes the bitwise OR of its operands. For bool operands, | computes the logical OR of its operands; that is, the result is false if and only if both its operands are false.
^ is the Logical XOR operator.
Binary ^ operators are predefined for the integral types and bool. For integral types, ^ computes the bitwise exclusive-OR of its operands. For bool operands, ^ computes the logical exclusive-or of its operands; that is, the result is true if and only if exactly one of its operands is true.