• ベストアンサー

10進数の補数

基本情報のテキストのコラムに載っていたことなのですが理解できません 「10進数の補数の場合だと、9の補数と10の補数があることになりますね。 たとえば、2桁の範囲で考えると、 70の9の補数は99-70=29、 10の補数は100-70=30、 となりますね」 ・・・ 意味が・・・わかりません 一応、1の補数、2の補数 については勉強したばかりで理解できているつもりです。 教えてください。 お願いいたします

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

  • ベストアンサー
noname#33973
noname#33973
回答No.2

>1の補数、2の補数については勉強したばかりで理解できているつもりです とありますが、思うに、azicyanさんは、1の補数、2の補数について、 ・2の補数は各ビットの1と0を反転したものに+1したもの ・1の補数は各ビットの1と0を反転させたもの といったふうに理解されているのではないでしょうか? だとしたら、10進数における9の補数や10の補数はもちろん、2進数以外の補数については全く定義されていないわけですから、お尋ねの文が意味不明なのも当然です。 ・2の補数は各ビットの1と0を反転したものに+1したもの ・1の補数は各ビットの1と0を反転させたもの といった考え方は、実際に2進数の補数を求める際には便利ですが、もともとの定義ではありません。 補数のもともとの定義は、 ・ある数が、ある基準となる数となるために加える必要がある数 です。 「ある基準となる数」には2つの考え方があり、 1) その桁で最大の数になるもの 2)ちょうど次の桁へ繰り上がりになるもの があります。 例えば、2進数3桁の場合、「ある基準となる数」は前者が111、後者が1000で、それから元の数を引いたものが、それぞれ1の補数、2の補数となります。 一方、10進数2桁の場合は、「ある基準となる数」は前者が99、後者が100で、それから元の数を引いたものが、それぞれ9の補数、10の補数となります。 この質問で初めて「補数」という言葉を知った者ですので勘違い等ありましたらご容赦くださいませ。(汗

azicyan
質問者

お礼

とても詳しく助かります。 >といったふうに理解されているのではないでしょうか? はい!!そのとうりです!! >実際に2進数の補数を求める際には便利ですが、もともとの定義ではありません。 ・・そうだったのですね・・・・ >一方、10進数2桁の場合は、「ある基準となる数」は前者が99、後者が100で、それから元の数を引いたものが、それぞれ9の補数、10の補数となります。 ありがとうございます だいぶわかりました! >この質問で初めて「補数」という言葉を知った者ですので勘違い等ありましたらご容赦くださいませ。(汗 えーーー!?!? すごい・・・・ すぐにこれだけわかってしまうなんて・・・ ありがとうございました。

その他の回答 (2)

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.3

補数と言うのは引き算をする代わりに足し算で代用する方法として考えられました。 10進数6桁で考えます。 10の補数は1000000が基準になります。 9の補数は999999が基準になります。 10の補数と9の補数の違いの意味は基準の数を見るとわかりますね。 2の補数と1の補数も同じ見方をしてみれば理解が深まるでしょう。

azicyan
質問者

お礼

>補数と言うのは引き算をする代わりに足し算で代用する方法として考えられました。 そうなんですね! 初めて知りました! 回答ありがとうございました!

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

goo辞書 - 補数 http://dictionary.goo.ne.jp/search.php?MT=%CA%E4%BF%F4&kind=jn 「補数」は、一定の数(A)からその値(B)を引き算した結果(C)のことを言います。 > 70の9の補数は99-70=29、 合ってますね。 ちょっと読み方を変えて、「Bに対するAの補数Cとは、足してAになる数」のように読み替えてみては? -- のように考えると、 「7の9に対する補数は2だ。」 「70の99に対する補数は29だ。」 「700の999に対する補数は299だ。」 「7000の9999に対する補数は2999だ。」 という事が言えます。 対象の数の桁数は何桁あるか分からないのが普通ですので、「9の補数」という言い方にしてしまい、1桁の場合は9から、2桁の場合は99から引き算するという考え方をします。

参考URL:
http://dictionary.goo.ne.jp/search.php?MT=%CA%E4%BF%F4&kind=jn
azicyan
質問者

お礼

ありがとうございます。 >1桁の場合は9から、2桁の場合は99から引き算するという考え方をします。 そうなのですね! わかってきました!!

関連するQ&A