- ベストアンサー
二進法での四則演算の方法
コンピューターは二進法といって"0"と"1"だけの算数をする・・・ と子供に教えたところまではよかったのですが 「どんな風に計算するの?」と聞かれててんぱってしまいしました。 確か、1+1=10、10+1=11, 11+1=100のようにすると思っていましたが 全く自信がありません。足し算、引き算はまだ良いとして 掛け算、割り算はさっぱりわかりません。 親父の威厳を保つため、どなたかわかりやく教えていただけると 助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
掛け算割り算のやり方は10進法と全く同じです。 掛ける数字を桁ごとに分けてから掛けて最後に合計します。 たとえば 1101×11の場合 (1) 1101×10を計算します これは10進法と同じで1桁数字が大きくなるだけなので 11010となります (2) 1101×1を計算します これは1101です (3)11010+1101=100111となります。 割り算について たとえば100100÷11の場合 (1)割られる数100100の数字の先頭から数字を選んでいきます 2つ数字を選ぶと10でこの中には11はないので 3つ数字を選ぶと100となりこの中に11は1あるので 2の3乗の位(10進法では1000の位)は1となり 100100-11000=1100となります (2)次に1100を11で割ります(1)と同様に計算すると 2の2乗の位が1となり (3)商は1100となります
その他の回答 (2)
- info22
- ベストアンサー率55% (2225/4034)
2進法の1桁の加算器の論理回路を全加算器(Full Adder)と言います。 全加算器には、入力として、被加数Aと加数Bと下位からの桁上げ(キャリー)Ci、出力として、加算結果Sと上位桁への桁上げ(キャリー)Coがあります。 計算の桁数だけの全加算器を縦続に接続して、2進多桁の計算をします。 >確か、1+1=10、10+1=11, 11+1=100のようにすると思っていましたが 全く自信がありません。足し算、引き算 足し算は貴方の考え方で合っています。 引き算は、負数や引く数を2の補数に変換してから、上記加算回路で加算器で計算します。 8ビットの整数計算では 5-2 =00000101-(00000010) 5+(-2)= =00000101+ +11111110(-2の2の補数) =00000011(8ビット目からの桁上げは無視) =3 2進の正整数の計算は全加算器を多桁分繋いだ2進の加算回路が、計算機の演算回路に組み込まれています。 整数の掛け算や割り算は10進数の積算と同じ計算を2進数で行います。そろばんで計算するのと同じです。ただ計算が0と1だけの2進数であることだけが異なっています。 論理回路では加算回路と桁を1桁ずらすシフトレジスタの回路で桁数分の加算(減算)をします。必要な桁数の被乗数と乗数の記憶場所(レジスタ)と計算結果を記憶する2倍の桁数の乗算結果を入れるレジスタがあり、加算と1桁シフトを繰り返して計算しています。 小数点の付いた数値の加減乗除には計算がもう少し複雑になります。 詳細は電子計算機の仕組みの簡単な本を購入して読まれるといいと思います。 #どこの親も、子供の宿題の相手をさせられるのは同じですが、自分の学歴も関係して、親が習わなかったことまでは教えられませんね。大抵、中学または高校位の数学まででないと難しいですね。大学でも得意科目であれば子供の相手もできますがなかなか難しいですね。
お礼
丁寧なご回答ありがとうございます。 子供(小学生)には絵を描いて説明しようと思います。 そもそも私はコンピューターの事はさっぱりで、中でどんな計算しているかなどは異次元ワールドでしたから。 ザリガニ釣りや、カブトムシの捕まえ方なら簡単に教えられるのですが(笑)。 あんまり難しい事聞かれると「大人になったらわかる!!」とごまかしてきましたが、これもそろそろ効き目が薄くなってきました・・・。
- shintaro-2
- ベストアンサー率36% (2266/6245)
>確か、1+1=10、10+1=11, 11+1=100のようにすると思っていましたが あってます 10進の2*2を考えてみましょう 2進なら、1が10です。つまり左に1桁ずらすと2倍なのです。 2桁ずらせば、4倍です。 2のn乗でないときは、足します。5倍なら4倍+1倍です。 割り算は、逆です 右に一桁ずらすと、1/2倍になります。 3で割るときは 1/3=1/4+1/16+1/62+1/128・・・ 可能な限り足す 無限に足せば等しくなります。 電卓で1÷3とやったあと、3倍しても1になりませんよね
お礼
ありがとうございます。 私の遠い遥か彼方の記憶で足し算の説明は子供にできましたが 掛け算、割り算は手も足もでませんでした。 >つまり左に1桁ずらすと2倍なのです。 >右に一桁ずらすと、1/2倍になります。 なるほど!! これなら、なんとか子供に説明できそうです。
お礼
例題を使ってのご説明ありがとうございます。 私のようなトウシロには大変助かります。 基本的に十進法と変わらないところがミソですね。 早速、この例題を使って子供に説明したいと思います。