agert,
b ^= 1;
это не степень это исключающее или
http://javascript.ru/bitwise-operators
способ установления переменной в 1 или true -- затем в 0 или false и т.д.
Алгоритм такой : Если кнопка ранее не нажималась установить переменную b в ноль , в переменной a запомнить какая кнопка нажата .
потом установить значение checked согласно тригеру b.
b ^= 1; или b = b ^ 1;
это можно заменить данном случае на b=!b;