{{fbdoc item="title" value="Operator XOR= (Exclusive Disjunction and Assign)"}}----
Performs a bitwise-xor (exclusive disjunction) and assigns the result to a variable

{{fbdoc item="syntax"}}##
	[[KeyPgDeclare|declare]] [[KeyPgOperator|operator]] **Xor=** ( [[KeyPgByref|byref]] //lhs// [[KeyPgAs|as]] //T1//, [[KeyPgByref|byref]] //rhs// [[KeyPgAs|as]] //T2// )
##
{{fbdoc item="usage"}}##
	//lhs// **Xor=** //rhs//
##
{{fbdoc item="param"}}
	##//lhs//##
		The variable to assign to.
	##//T1//##
		Any numeric or boolean type.
	##//rhs//##
		The value to perform a bitwise-xor (exclusive or) with ##//lhs//##.
	##//T2//##
		Any numeric or boolean type.

{{fbdoc item="desc"}}
	This operator performs a bitwise-or and assigns the result to a variable (for conversion of a boolean to an integer, false or true boolean value becomes 0 or -1 integer value). It is functionally equivalent to:
		##//lhs// = //lhs// [[KeyPgOpXor|xor]] //rhs//##
		
	##**Xor=**## compares each bit of its operands, ##//lhs//## and ##//rhs//##, and if both bits are the same (both 1 or both 0), then the corresponding bit in the first operand, ##//lhs//##, is set to 0, otherwise it is set to 1.
	
	This operator can be overloaded for user-defined types as a member ##[[KeyPgOperator|Operator]]## using the appropriate syntax.
	
	//Note: Similarly to the operator '=[>]' (assign), the alternative symbol 'Xor=>' can be also used.//

{{fbdoc item="ex"}}
{{fbdoc item="filename" value="examples/manual/operator/xor-assign.bas"}}%%(freebasic)
dim as ubyte a = &b00110011
dim as ubyte b = &b01010101
a xor= b
'' Result    a = &b01100110
print bin(a)
%%

{{fbdoc item="lang"}}
	- In the //[[CompilerOptlang|-lang qb]]// dialect, this operator cannot be overloaded.

{{fbdoc item="diff"}}
	- New to ""FreeBASIC""

{{fbdoc item="see"}}
	- ##[[KeyPgOpXor|Xor]]##

{{fbdoc item="back" value="CatPgOpAssignment|Assignment Operators"}}{{fbdoc item="back" value="CatPgOperators|Operators"}}