如何减少位串?

时间:2012-02-15 23:21:56

标签: c++ boost bit-manipulation boost-dynamic-bitset

我想为bitstring设置一个递减运算符。我目前有一个增量运算符,定义如下:

void increment(boost::dynamic_bitset<> &bitset)
{   
    for (int loop = 0; loop < bitset.size(); ++loop)
    {
        if ((bitset[loop] ^= 0x1) == 0x1)
        {
            break;
        }
    }
}

我如何减少位串?

1 个答案:

答案 0 :(得分:2)

看起来这样可行。

void decrement(boost::dynamic_bitset<> &bitset) 
{    
    for (int loop = 0; loop < bitset.size(); ++loop) 
    { 
        if ((bitset[loop] ^= 0x1) == 0x0) 
        { 
            break; 
        } 
    } 
}