Хм, а вот этот алгоритм вроде не сфейлился:
bit1=xor(i1,i2)
bit2=xor(i1,i3)
bit3=xor(i1,i4)
bit4=xor(i2,i3)
bit5=xor(i2,i4)
bit6=i2
bit7=i1
Ой, только я ступил, у меня там обратный xor в проверках фигурировал. Ошибся ) То есть 1, когда операнды одинаковые. Но да не суть, с нормальным тоже проверка проходится. Они симметрично работают.