获取和设置byte中某一位的值
代码如下:
/// <summary>
/// 设置字节的某一位的值(将该位设置成0或1)
/// </summary>
/// <param name="data"></param>
/// <param name="index">右到左为 0-7</param>
/// <param name="value"></param>
/// <returns></returns>
public static byte SetBitInByte(byte data, int index, bool value)
{
index = index + 1;
if (index >8 || index < 1)
throw new ArgumentOutOfRangeException();
int v = index < 2 ? index : (2 << (index - 2));
return value ? (byte)(data | v) : (byte)(data & ~v);
}
/// <summary>
/// 获取字节中某一位的值
/// </summary>
/// <param name="data"></param>
/// <param name="index">右到左为 0-7</param>
/// <returns></returns>
public static bool GetBitInByte(byte data,int index)
{
return (data & (byte)Math.Pow(2, index)) > 0 ? true : false;
}
这段代码提供了一个在C#中设置和获取byte类型数据中特定位置位值的方法。SetBitInByte函数通过位运算符来设置指定索引处的位为0或1,而GetBitInByte函数则检查给定索引处的位是否为1,返回布尔值表示结果。索引从右到左计数,范围是0-7。

8112

被折叠的 条评论
为什么被折叠?



