新生活を充実させるための「こだわり」を取材!!

2進数の0101の補数はなんですか?

教えて!goo グレード

A 回答 (3件)

「補数」とは、たとえば「10の補数」であれば


「3」の補数は「7」
「6」の補数は「4」
つまり「足して 10 になる数」ということです。

2進数で「4ビット2進数の補数」は
「足して 1 0000 になる数」
ということです。
「足すと、4ビットから桁上がりする数」ということです。
これを、2進数の場合に限り、一般に「2の補数」と呼ぶようです。

というのは、もとの2進数の「0 と 1 とをひっくり返した数」と足し合わせると「全桁が1」の数が出来上がるので、これを「1の補数」と呼ぶ場合があるからです。
「1の補数」に「1」を加えたものが「2の補数」になることは分かりますね?

お示しの
 0101
の「0 と 1 とをひっくり返した数」
 1010
が「1の補数」で、これに「1(=0001)」を加えた
 1011
が「2の補数」になります。

試しに足し合わせてみれば
 0101 + 1011 = 1 0000
になりますね。


いま、「4ビットの計算機」があって、5桁に桁あふれすると「桁上がりした1」がどこかに消えてしまう(オーバーフローする)とすると、
 0101 + 1011 = (1)0000 → 0000
となります。
つまり、4ビットの計算機上で「足し合わせると 0 になる数」になります。
これは「絶対値が同じでマイナスの数」ということです。
この性質を利用して(ある意味で悪用して)、ビット数の決まった2進数の「負数」を「2の補数」で表すことが行われています。そうすると「引き算」を「負数(2の補数)との足し算」で計算することができるようになります。

「補数を求めよ」という課題は、次のステップで「負数を2の補数で表す」ことの前段だと思います。
4ビットの2進数で、「2の補数」で負数を表わす場合には、10進数を(10)で表すと
・正数:0001(2)~0111(2) が 1(10)~7(10)
・負数:1111(2)~1000(2) が -1(10)~-8(10)
ということになります。
「負数」を通常の2進数として読んでも「正数」とは直接対応しない意味のない数値ですから、誤解しないようにしましょう。
    • good
    • 0

こんばんは。



1の補数:全て1と0を逆転させたもの → 1010
2の補数:1の補数に、1を足したもの → 1011

因みに、ビット数は4ビットで良いのでしょうか?
仮に8ビットなら、前に4ビット、1111が必要になります。

下記が参考になるでしょうか?
http://www.it-license.com/cardinal_number/The_co …
    • good
    • 0

1の補数なら1010

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング