Re: Байтовый доступ к int C#
От: Mizantrop  
Дата: 30.08.09 04:29
Оценка:
Здравствуйте, 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, но надо не забывать о платформозависимости порядка следования байт.
"Нормальные герои всегда идут в обход!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.