• ベストアンサー

10進数→2進数

2で割った余りを並べていく、小数部分を2倍して整数部分を並べていく方法で10進数を2進数に変換できる理由、nbitになるように0を左側につけて0と1を反転させ1を足すとnbitの2の補数表示の2進数を求めることができる理由が分かりません。分かる方、教えてください。

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

  • ベストアンサー
  • CTAB
  • ベストアンサー率57% (41/71)
回答No.1

十進数の数字を10で割ったあまりを並べれば、元の十進数になりますね。これは×10をする毎で繰り上がるので、10で割ったあまりが、その桁の数字になるからです。この文章の10を2に換えれば、理解できると思います。 ×2をする毎に桁が上がるので、×2ごとの余りがそのときの桁の数になるわけです。 補数の方は、まず2の補数と言うのはそのとき与えられた数より一桁上の数の最小値になるには、いくつの数を足せばいいのかと言うことはわかりますか? つまり10110だったら100000になるには10110に01010を足せば、100000になりますので、10110の2の補数は01010になります。(11111になるには~と言う場合が1の補数ですね) ちなみに十進数でも出来ますね。7085を10000にするには2915を足せばよいので2915が7085の2の補数になります。9999にするために必要なのは1の補数です。 つまり、10110の2の補数を出すためには 100000-10110 をすればよいわけですね。 これは (011111+000001)-10110 とも考えられます。 これ順序をかえれば 011111-10110+1 になります。 11111-10110は10110の反転ですね。これに1を足すわけです。

関連するQ&A