/// <summary>
/// 设置一个byte中各个bit的位值
/// </summary>
/// <param name="_word">目标,要设置的byte</param>
/// <param name="value">值,为目标位设置的值</param>
/// <param name="offset">值在目标中的偏移量</param>
/// <returns></returns>
public static byte SetBits(byte _word, byte value, int offset)
{
byte mask_1 = (byte)(value << offset);
byte mask_2 = (byte)(~mask_1 & _word);
return (byte)(mask_1 | mask_2);
}
/// <summary>
/// 设置一个byte中各个bit的位值
/// </summary>
/// <param name="_word">目标,要设置的byte</param>
/// <param name="value">值,为目标位设置的值</param>
/// <param name="offset">值在目标中的偏移量</param>
/// <returns></returns>
public static byte SetBitsReverse(byte _word, byte value, int offset)
{
byte mask_1 = (byte)(value >> offset);
byte mask_2 = (byte)(~mask_1 & _word);
return (byte)(mask_1 | mask_2);
}
结果展示:

本文介绍了一种在byte中设置特定bit位值的方法,包括正向和反向位移操作,通过两个静态方法SetBits和SetBitsReverse实现。这些方法接受目标byte、要设置的值和偏移量作为参数,返回修改后的byte。
503





