私は多項式のクラスを持ち、その自然な表現は係数です。係数が設定されている場合は、その2進数ではa 1、3進数では1または2などです。たとえば、2進数では、X +1は101として表されます。三項式では、2X + 1は、201として表される。ostreamを8,10,16以外の基底で使用する
クラスは、operator<<
オーバーロードを提供する。内部的には、クラスは整数配列を使用して係数を表します。だから私は実行することができる必要があります:
ostringstream oss;
for (size_t i=0; i<v.size(); i++)
oss << v[i];
私が午前問題は、私は8以外の塩基のためのostreamを設定する方法がわからないで、10と16 ios_base
std::oct
を提供し、std::dec
とのためstd::hex
しかし、私は頻繁に使用されるベースのために何を使用するか分かりません。 C++ Reference on ios_baseのようなページでは、何を使うべきかは議論されていません。
8,10,16以外のベースでostreamを使用するにはどうすればよいですか?
いいえ、他のベースはサポートされていません。それを文字列に変換して出力する必要があります。 –
これが標準的な手段で可能かどうかは不明です。 http://en.cppreference.com/w/cpp/io/manip/setbase - "8,10、または16以外のベースの値は、10進数の出力と接頭辞に依存する入力に対応するベースフィールドをゼロにリセットします。 " – jready
非常に最近追加されたことがわからない限り、iostreamsの8,10,16以外の基盤はサポートされていません。数字を文字列として読んで、手で解読する必要があります。 – zwol