Должно работать:
Byte_Source - источник
Byte_Maska - позиции битов которые необходимо перенести
Byte_Relise - получатель
Код
Byte_Relise = (Byte_Source&(Byte_Maska))|(Byte_Relise&(~Byte_Maska));
если правильно понял идею.
// ---------------------------------
если положено описывать принцип то:
(Byte_Relise&(~Byte_Maska) - уст. в 0 переносимые биты приемника
(Byte_Source&(Byte_Maska)) - убираем информацию о лишних битах
и далее в Byte_Relise устанвливаем в 1 биты по маске из Byte_Source