Замена бита на противоположный с помощью битовых операций
#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);
}```