Здравствуйте, MScanner, Вы писали:
MS>В С++ можно было так
На C# можно так
static void SetByte(ref Int32 iValue, byte bValue, int ByteIndex)
{
ByteIndex = (ByteIndex % 4) * 8;
iValue = (iValue & ~(0xFF << ByteIndex)) | (bValue << ByteIndex);
}
static byte GetByte(Int32 iValue, int ByteIndex)
{
ByteIndex = (ByteIndex % 4) * 8;
return (byte)(0xFF & (iValue >> ByteIndex));
}
Ещё можно использовать промежуточную структуру с заданным FieldOffset, но надо не забывать о платформозависимости порядка следования байт.