• ベストアンサー

負数の表現法

2進数| 10進数| 16進数|    |  -5 |     | この場合、2進数と16進数の値はどうなりますか? ※負数は2進数、16桁の2の補数で表してください。 また、値だけでなく、計算方法も教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • R_Earl
  • ベストアンサー率55% (473/849)
回答No.2

まずは+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)
回答No.5

数学的な表現なのかコンピュータ上の表現なのか 区別が必要です。 質問者はどちらの意味で質問されているのでしょうか? コンピュータで使われている表現に限定しても、いくつか 種類があります。 お望みの表現法はどれでしょうか。

  • ybnormal
  • ベストアンサー率50% (220/437)
回答No.4

1_0000_0000_0000_0000 - 0101 = 1111_1111_1111_1011 2進数がわかれば、16進数は明白。

  • R_Earl
  • ベストアンサー率55% (473/849)
回答No.3

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)
回答No.1

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になるのです。