Замена бита на противоположный с помощью битовых операций

#include <stdio.h> Здравствуйте,помогите пожалуйста,почему в данной программе биты номера sdvig_1 - 1 и sdvig_2 - 1 не меняются на противоположные?


int main(void)
{
    int c, sdvig_1, sdvig_2;
    scanf("%d%d%d", &c, &sdvig_1, &sdvig_2);
    int b_1 = (c >> sdvig_1 - 1) & 1;
    int b_2 = (c >> sdvig_2 - 1) & 1;
    if(b_1 != b_2){
        c ^= (1 << sdvig_1 - 1);
        c ^= (1 << sdvig_2 - 1);
    }
    printf("%d", c);
}```

Ответы (0 шт):