Если вы читаете / пишете это, я бы просто перевел это на уровне Stream
, что-то вроде:
int b = source.ReadByte();
if (b < 0) throw new EndOfStreamException();
int operx = b & 15;
int oper = (b >> 4) & 15;
b = source.ReadByte();
if (b < 0) throw new EndOfStreamException();
int prefix = b & 7;
int reg = (b >> 3) & 31;
b = source.ReadByte();
if (b < 0) throw new EndOfStreamException();
int period = b & 7;
int fas = (b >> 3) & 3;
int tar = (b >> 5) & 7;
Если вы делаете лоты этого, выможет обернуть это во что-то более элегантное, возможно, используя атрибуты для определения смещений - но для 10?Мех ... не стоит того.Написание надежного универсального конвертера - это лотов тяжелой работы.