Ответ Мерадада показывает, как это сделать с помощью битовых манипуляций. Вы также можете использовать старый трюк с байтовым массивом (при условии, что C или другой язык допускает эту глупость):
byte n = 0xDD;
uint i = 0x12345678;
byte *b = (byte*)&i;
b[1] = n;
Конечно, это специфично для процессора, так как у машин с прямым порядком байтов байты обращены к младшему. Кроме того, этот метод ограничивает вас работой над точными байтовыми границами, тогда как битовая манипуляция позволит вам модифицировать любые заданные 8 битов. То есть, возможно, вы захотите превратить 0x12345678
в 0x12345DD8
, что не подходит для техники, которую я показываю.