Sobes.tech
Junior

Hogyan lehet egy bitet 1-re állítani bitenkénti OR művelettel?

sobes.tech MI

Válasz az MI-től

Egy adott bitet 1-re állítani egy számban bit szinten az OR művelettel, egy maszkkal kell dolgozni, amely a kívánt pozícióban 1-es, a többi bitben pedig 0.

Például, a n számú bit (0-tól kezdődően, a legkisebb helyiértékű bit-től kezdve) beállításához így járunk el:

int setBit(int num, int n) {
    return num | (1 << n);
}

Itt, az 1 << n eltolja az 1-et az n pozícióba, és az | művelet ezt a bitet 1-re állítja a num számban, anélkül, hogy a többi bitet módosítaná.

Példa:

int x = 4;      // 0100 binárisan
int y = setBit(x, 1); // beállítjuk az 1-es bitet
// y értéke 6 lesz (0110)