位操作

记录一下位操作:

    /*
        index:[0, 7]
    */
    bool  SetOrCleanBit(unsigned char& data, int index, bool enable)
    {
        if (index < 0 || index > 7)
        {
            return false;
        }
        if (enable)
            data |= (1 << index);
        else
            data &= ~(1 << index);

        return true;
    }

    /*
        index:[0, 7]
    */
    int GetBit(char ch, int index)//0101 1010,2->1
    {
        if (index < 0 || index > 7)
        {
            return false;
        }

        return (ch >> index) & 1;
    }

 

posted @ 2020-09-22 20:31  xcywt  阅读(160)  评论(0)    收藏  举报
作者:xcywt
出处:https://www.cnblogs.com/xcywt//
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。