То, что вы ищете, называется побитовой операцией.
Например, допустим, мы собираемся представить значение RGB в младших 24 битах целого числа, где R - это биты 23-16, G - это биты 15-8, а B - это биты 7-0.
Вы можете установить R на любое значение от 0 до 255, не влияя на другие биты, подобные этому:
void setR(ref int RGBValue, int newR)
{
int newRValue = newR << 16; // shift it left 16 bits so that the 8 low-bits are now in position 23-16
RGBValue = RGBValue & 0x00FF; // AND it with 0x00FF so that the top 16 bits are set to zero
RGBValue = RGBValue | newRValue; // now OR it with the newR value so that the new value is set.
}
Используя побитовые AND и OR (а иногда и более экзотические операции), вы можете легко установить и очистить любой отдельный бит большего значения.