Can someone explain me what this code does?

Code:
char CRC[8];
DoInvert = ('1'==BitString[i]) ^ CRC[7];
Especially :
Code:
('1'==BitString[i])
For me DoInvert calculates the XOR between ('1'==BitString[i]) and CRC[7]

Can someone help me with this?

Thank you