printf系関数を使っても、標準ストリームのマニピュレータを使っても、8進数、10進数、16進数に変換することはできても、2進数に変換することはできません(処理系の独自拡張で変換できることはあります)。しかし、std::bisetクラステンプレートを使えば簡単に変換することができます。

上記のサンプルでは標準出力に直接出力していますが、変換結果を文字列として欲しいのであれば、次のようにすることができます。

上のサンプルを見ても分かるように、to_string メンバ関数を呼び出すときはテンプレート実引数を指定しなければならず、かなり面倒です。std::ostringstreamを使う方が簡単かもしれません。

C++11からはstd::bitsetも少し改良されているので、使い勝手がずっとよくなりました。

wchar_t型の文字列も簡単に取得できます。

同様にして、char16_t型、char32_t型、char8_t型の文字列も取得することができます。