#[Japt](https://github.com/ETHproductions/Japt), <s>29</s> 11 [bytes](https://en.wikipedia.org/wiki/ISO/IEC_8859-1)
Uo ®¤¬r@X^Y
[Try it online!](http://ethproductions.github.io/japt?v=master&code=VW8grqSsckBYXlk=&input=NDI=)
The OP said:
> If you like, you can also add a separator.
So to save about 4 bytes, I use a separator of `,`, which is automatically inserted.
###Ungolfed and explanation
Uo mZ{Zs2 q rXY{X^Y}}
// Implicit: U = input number
Uo // Create an array of integers in the range `[0, U)`.
mZ{Zs2 // Map each item in this range to Z.toString(2),
q rXY{ // split into chars, and reduce by
X^Y}} // XORing.
// Implicit: output last expression