在开发中,有时候会遇到要置byte数据某一位或者某几位数据为某个特定值的问题
如果有规律的话,可以用位操作符进行处理,没规律的需要自己实现。
//index是要设置哪一位,从左到右依次是:8,7,6,5,4,3,2,1
//flag 为true 表示设值为1,false表示设值为0
byte Set_Bit(byte data, int index, bool flag)
{
if (index > 8 || index < 1)
throw new ArgumentOutOfRangeException();
int v = index < 2 ? index : (2 << (index - 2));
return flag ? (byte)(data | v) : (byte)(data & ~v);
}
以上即可。
版权声明:本文为qq_37887131原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。