名前空間
変種
操作

operator<<,>>(std::bitset)

提供: cppreference.com
< cpp‎ | utility‎ | bitset
 
 
 
 
template <class CharT, class Traits, size_t N>

std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os,

                                              const bitset<N>& x);
(1)
template <class CharT, class Traits, size_t N>

std::basic_istream<CharT, Traits>& operator>>(std::basic_istream<CharT, Traits>& is,

                                              bitset<N>& x);
(2)

ビットセットを文字ストリームに挿入または抽出します。

1) まず to_string() を使用して basic_string<CharT,Traits> に変換し、それを operator<< (文字列に対する FormattedOutputFunction) を使用して os に書き込んだかのように、ビットセット x を文字ストリーム os に書き込みます。 1および0のために使用する文字は、引数として '1' および '0' を渡して std::use_facet<std::ctype<CharT>(os.getloc()).widen() を呼ぶことによって、現在設定されているロケールから取得されます。
2) FormattedInputFunction として動作します。 先頭のホワイトスペースをスキップするかもしれない sentry オブジェクトの構築および確認後、 is から最大 N 文字を抽出し、ビットセット x にその文字を格納します。

文字は以下のいずれかが発生するまで抽出されます。

  • N 文字読み込んだ。
  • is でファイル終端が発生した。
  • 次の文字が is.widen('0') でも is.widen('1') でもない。

1文字も抽出されなかった場合は is.setstate(ios_base::failbit) が呼ばれます。

目次

[編集] 引数

os - 書き込む文字ストリーム
is - 読み込む文字ストリーム
x - 読み書きするビットセット

[編集] 戻り値

操作対象の文字ストリーム、すなわち os または is

[編集]

#include <bitset>
#include <iostream>
#include <sstream>
 
int main()
{
    std::string bit_string = "001101";
    std::istringstream bit_stream(bit_string);
 
    std::bitset<3> b1;
    bit_stream >> b1; // reads "001", stream still holds "101"
    std::cout << b1 << '\n';
 
    std::bitset<8> b2;
    bit_stream >> b2; // reads "101", populates the 8-bit set as "00000101"
    std::cout << b2 << '\n';
}

出力:

001
00000101

[編集] 関連項目

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