2012-02-15 16 views
1

ビットストリングに対してデクリメント演算子が必要です。ビットストリングを減らすには?

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

を私はビット列にデクリメントする方法を次のように私は、現在定義されてincremement演算子がありますか?

答えて

2

これはうまくいくようです。

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

これは私の直感であり、確認を望んでいました。ありがとう! – Jim

関連する問題