タグ付けされた質問 「std-bitset」

11
数値をバイナリ形式で(coutを使用して)印刷する方法は?
私はオペレーティングシステムに関する大学のコースをフォローしており、バイナリから16進数、10進数から16進数などに変換する方法を学習しています。今日は、2の補数(〜number + 1)。 紙で行う演習が2つあります。課題を教師に提出する前に、回答を確認できるようにしたいと思います。最初の数回の演習用にC ++プログラムを作成しましたが、次の問題で自分の答えを確認する方法がわからなくなりました。 char a, b; short c; a = -58; c = -315; b = a >> 3; 我々はバイナリ表現を示すために必要なメモリ内のをa、bとc。 私はそれを紙の上で行いました、そしてそれは私に次の結果を与えます(2の補数の後の数の記憶のすべてのバイナリ表現): a = 00111010(これは文字なので、1バイトです) b = 00001000(これは文字なので、1バイトです) c = 11111110 11000101(短いので2バイト) 私の答えを確認する方法はありますか?C ++で数値のメモリにバイナリ表現を表示する標準的な方法はありますか、または各ステップを自分でコーディングする必要がありますか(2の補数を計算してからバイナリに変換します)?後者はそれほど長くはかからないでしょうが、標準的な方法があるかどうか知りたいです。

1
libc ++のvector <bool> :: const_referenceがboolではないのはなぜですか?
セクション23.3.7クラスvector&lt;bool&gt;[vector.bool]、パラグラフ1は次のように述べています。 template &lt;class Allocator&gt; class vector&lt;bool, Allocator&gt; { public: // types: typedef bool const_reference; ... ただし、libc ++を使用すると、このプログラムはコンパイルに失敗します。 #include &lt;vector&gt; #include &lt;type_traits&gt; int main() { static_assert(std::is_same&lt;std::vector&lt;bool&gt;::const_reference, bool&gt;{}, "?"); } さらに、C ++標準はこの仕様でC ++ 98までずっと一貫していることに注意します。また、libc ++が最初に導入されて以来、libc ++はこの仕様に一貫して準拠していないことにも注意してください。 この不適合の動機は何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.