首页 > 代码库 > GetBit SetBit
GetBit SetBit
/// <summary> /// 设置某一位的值 /// </summary> /// <param name="data"></param> /// <param name="index">要设置的位, 值从低到高为 1-8</param> /// <param name="flag">要设置的值 true / false</param> /// <returns></returns> 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); }
/// <summary> /// 获取数据中某一位的值 /// </summary> /// <param name="input">传入的数据类型,可换成其它数据类型,比如Int</param> /// <param name="index">要获取的第几位的序号,从0开始</param> /// <returns>返回值为-1表示获取值失败</returns> private int GetbitValue(byte input,int index) { if (index > sizeof(byte)) { return -1; } //左移到最高位 int value = http://www.mamicode.com/input << (sizeof(byte) - 1 - index); //右移到最低位 value = http://www.mamicode.com/value >> (sizeof(byte) - 1); return value; }
GetBit SetBit
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。