名前空間
変種
操作

std::bitset::operator&=,|=,^=,~

提供: cppreference.com
< cpp‎ | utility‎ | bitset
 
 
 
 
bitset<N>& operator&=( const bitset<N>& other );
(1)
bitset<N>& operator|=( const bitset<N>& other );
(2)
bitset<N>& operator^=( const bitset<N>& other );
(3)
bitset<N> operator~() const;
(4)

バイナリ論理積、論理和、排他的論理和および論理否定を行います。

1) ビットを *thisother の対応するビットの組に対するバイナリ論理積の結果に設定します。
2) ビットを *thisother の対応するビットの組に対するバイナリ論理和の結果に設定します。
3) ビットを *thisother の対応するビットの組に対するバイナリ排他的論理和の結果に設定します。
4) すべてのビットを反転 (バイナリ論理否定) した *this の一時的なコピーを返します。

&=|=^= は同じサイズ N のビットセットに対してのみ定義されることに注意してください。

目次

[編集] 引数

other - 別のビットセット

[編集] 戻り値

1-3) *this
4) bitset<N>(*this).flip()

[編集] 例外

(なし) (C++11以前)
noexcept 指定:  
noexcept
  
(C++11およびそれ以降)

[編集]

#include <iostream>
#include <string>
#include <bitset>
 
int main()
{
    std::bitset<16> dest;
    std::string pattern_str = "1001";
    std::bitset<16> pattern(pattern_str);
 
    for (size_t i = 0, ie = dest.size()/pattern_str.size(); i != ie; ++i) {
        dest <<= pattern_str.size();
        dest |= pattern;
    }
    std::cout << dest << '\n';
}

出力:

1001100110011001

[編集] 関連項目

バイナリ左シフトおよび右シフトを行います
(パブリックメンバ関数) [edit]