нужно сделать ТАК:
если нулевой и первый бит разные то нулевому биту присваиваем значение первого бита
все остальные биты (2-7) должны остаться неизменными
использовать еще один байт для вычислений крайне нежелательно
как это сделать??
пример
flagi=0b xxxx xx01 результат 0b xxxx xx00
flagi=0b xxxx xx10 результат 0b xxxx xx11
flagi=0b xxxx xx00 результат 0b xxxx xx00
flagi=0b xxxx xx11 результат 0b xxxx xx11
вот что придумал я: (но это страшно!)
сдвигаю влево на 6 знаков и срвниваю...
и тогда подходящие варианты будут
либо 0b 0100 0000 (64) либо 0b 1000 000 (128)
if ( ( (flagi<<6)=128 ) | ((flagi<<6)=64) )
{
if (flagi & 0b00000010) flagi SET_BIT(0); else flagi CLR_BIT(0);
}
SET_BIT и CLR_BIT это макро устанавливающие или сбрасывающие нужный бит

