- ベストアンサー
負数の表現法
2進数| 10進数| 16進数| | -5 | | この場合、2進数と16進数の値はどうなりますか? ※負数は2進数、16桁の2の補数で表してください。 また、値だけでなく、計算方法も教えてください。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
まずは+5を2進数にします。 そうすると 0000 0000 0000 0101 です。 負の数にするときは、ビット反転して+1します。 まずビット反転すると 1111 1111 1111 1010 となり、これに1を足すと 1111 1111 1111 1011 となります。これが-5です。 16進数に変換する時は、正の2進数の時と同じです。 1111 1111 1111 1011を今まで通りの方法で16進数に直します。
その他の回答 (4)
- sinisorsa
- ベストアンサー率44% (76/170)
数学的な表現なのかコンピュータ上の表現なのか 区別が必要です。 質問者はどちらの意味で質問されているのでしょうか? コンピュータで使われている表現に限定しても、いくつか 種類があります。 お望みの表現法はどれでしょうか。
- ybnormal
- ベストアンサー率50% (220/437)
1_0000_0000_0000_0000 - 0101 = 1111_1111_1111_1011 2進数がわかれば、16進数は明白。
- R_Earl
- ベストアンサー率55% (473/849)
ANo.2ですが、追記です。 回答文の最後に「今まで通りの方法で16進数に直します」と書きましたが、 よくよく考えたら「私の知っている方法」と「質問者さんが知っている方法」は違うかもしれませんね。 なので一応そのやり方を書いておきます。 例えば2進数1101111000011010を16進数に直したい時は、 最下位のビットから4ビットずつに区切って 1101 1110 0001 1010 とします。この時できた4ビットの塊をそのまま16進数に変換します。 それだけで2進数 → 16進数の変換は完了です。 一番左の1101は10進数の13なので、16進数のDに対応します。 左から二番目の1110は10進数の14なので、16進数のEに対応します。 右から二番目の0001は10進数の1なので、16進数の1に対応します。 一番右の1010は10進数の10なので、16進数のAに対応します。 よって2進数1101111000011010を16進数に直すと、DE1Aとなります。
- pasocom
- ベストアンサー率41% (3584/8637)
2進法では 1→1 2→10 3→11 4→100 5→101 ですから10進法の「-5」は「-101」となります。 16進法ではまったく変わらずに「-5」のままです。10進法の9までは16進法と同じです。(10以上はA,B,C・・・となる)。10進法の16が16進法では10になるのです。