considering the below 2 vectors
x <- c(3, 4, 5)
y <- c(3, 5, 1)

output
x & y # TRUE TRUE TRUE

For bool,
XOR(TRUE,FALSE) => False

However, In the former example mentioned, unable to figure out what is the logic used while applying XOR on numbers eg: for XOR(3,3) or XOR(4,5) why does it return False False False? Need help.

^{Created on 2022-10-17 by the reprex package (v2.0.1)}

The numbers get coerced to logical (boolean) before applying any boolean operation. So 0 -> FALSE; any other number -> TRUE. This is made obvious by forcing the coercion: