Le az ifekkel rovat.if (x)
{
y = z;
} Ezt úgy lehet kiegyszerűsíteni, hogy első lépésbeny &= x - 1; azaz: ha x teljesül, akkor y értéke nulla lesz, mert (1 - 1) == 0 és azzal éselve nullát kapunk; ha meg x nem teljesül, akkor y értéke y lesz, mert (0 - 1) == -1 és azzal éselve semmi sem történik. Második lépésbeny |= !x - 1 & z; azaz: ha x teljesül, akkor y értéke z lesz, mert (!1 - 1) == -1 és ha ezt éseljük z-vel, akkor z marad és mivel az előző körben x már teljesült és y nulla lett, így (0 | z) == z; ha viszont x nem teljesül, akkor pedig y értéke nem változik, mert (!0 - 1) == 0, amivel éselve nullát kapunk, amivel vagyolva nem történik semmi.
Tehát egybe:y &= x - 1;
y |= !x - 1 & z; Ezt fel lehet írni esetleg így is:y = (x - 1 & y) | (!x - 1 & z); aminek a bal fele x függvényében lehet nulla vagy y, a jobb meg szintén x függvényében lehet z vagy nulla. Tehát kb. így nézne ki "visszaifesítve":y = x ? y | 0 : 0 | z |