Вы хотите прорубить - это очень хорошо. Суть - это вариация "классического" обмена значений двух переменных через XOR: a^=b^=a^=b;. Тут вообще все просто>>
если априорно принять bool m, т.е. или 0, или 1. Тогда выражение примет вид: x = (b^((-m)&(a^b))); Разберем случаи: (все вычисления справа налево) 1) если m=0, то -m тоже=0, и в результате (x = b^0); 2) если m=1, то -m = ff, и x = (b^(a^b)); т.е.x=a А остальная мишура - это !! это чтобы из числа "сделать bool". Тут уже блин условные переходы. Реализовать без них можно но получается немного громоздко. Зря алекс начал - это невредно знать.