私はオペレーティングシステムに関する大学のコースをフォローしており、バイナリから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の補数を計算してからバイナリに変換します)?後者はそれほど長くはかからないでしょうが、標準的な方法があるかどうか知りたいです。
std::hex
)16進表記を印刷できます