首页 > 代码库 > 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