Some confusion because the ^ ("caret") character has 2 purposes...
(1) it is used to "escape" special characters in batch files, especially the & character, which breaks commands otherwise. For example to use a & b in a batch file you must type a ^& b. I know this is confusing but you just have to learn it if you need to do batch arithmentic!
(2) In batch arithmetic the ^ character is also the "bitwise exclusive or" operator.
A bitwise exclusive or takes two bit patterns of equal length and performs the logical XOR operation on each pair of corresponding bits. The result in each position is 1 if the two bits are different, and 0 if they are the same.
You can perform it manually like for school arithmetic as I shall demonstrate:-
Place an 0 in the answer if the bits are the same and a 1 if they are different
2 = 00000010
3 = 00000011
--------
result = 00000001 = 1
3 = 00000011
4 = 00000100
--------
result = 00000111 = 7
QED