Da bi invertovao bit, koristiš XOR (još se naziva i EOR; exclusive OR). Mislim da se u C koristi ^ da bi se izvršila ova operacija.
Mislim da će jedno:
rezultat = broj ^ maska;
biti dovoljno, valjda će neko da me ispravi ako ne valja
//update: eto Gruja me preduhitrio dok sam ja proveravao na Wikipediji koji je simbol u C za XOR. Valja, znači.