☆☆2進数同士のかけ算を行ってみよう
☆☆2進数同士のかけ算を行ってみよう☆☆
マックス 「よし、よし」
朗らかに微笑むマックス。
マックス 「2進数同士のたし算につづいて
2進数同士のひき算も理解したぁぁぁぁぁ」
老人 「順調じゃのう。マックスよ。」
マックス 「なんか思ったより2進数は素直だな。ははは。
足し算、引き算もふつうにできる・・・
となれば かけ算 割り算も
普通にかけたり、割ったりできるとみた。
理解できるのは時間の問題だー。
ふふふはぁーっはっはぁー\(^^)/」
老人 「わしもここまで簡単とはおもわなんだ。
よかったのう。マックス。これでますます
コンピュータの言葉がわかるようになるぞ。(^^)/
わしも元気がでてきたぞい。」
うれしそうに微笑む老人。
マックス 「さあ2進数同士のかけ算 やってみる!
まずは これこれ👇
2進数と10進数の対応表を用意する。
人間の世界 の コンピュータの世界の
10進数表示 2進数表示
0ーーーーーーーーーーーーーーー 0
1ーーーーーーーーーーーーーーー 1
2ーーーーーーーーーーーーーーー 10
3ーーーーーーーーーーーーーーー 11
4 ーーーーーーーーーーーーーーー 100
5 ーーーーーーーーーーーーーーー 101
6 ーーーーーーーーーーーーーーー 110
7 ーーーーーーーーーーーーーーー 111
8ーーーーーーーーーーーーーーー 1000
9 ーーーーーーーーーーーーーーー 1001
10 ーーーーーーーーーーーーーーー 1010
11 ーーーーーーーーーーーーーーー 1011
12 ーーーーーーーーーーーーーーー1100
13 ーーーーーーーーーーーーーーー1101
14 ーーーーーーーーーーーーーーー1110
15 ーーーーーーーーーーーーーーー1111
16 ーーーーーーーーーーーーーーー10000(5桁)
17 ーーーーーーーーーーーーーーー 10001(5桁)
18 ーーーーーーーーーーーーーーー10010(5桁)
19 ーーーーーーーーーーーーーーー10011(5桁)
20 ーーーーーーーーーーーーーーー10100(5桁)
21 ーーーーーーーーーーーーーーー10101(5桁)
22 ーーーーーーーーーーーーーーー10110(5桁)
23 ーーーーーーーーーーーーーーー10111(5桁)
24 ーーーーーーーーーーーーーーー 11000(5桁)
25 ーーーーーーーーーーーーーーー 11001(5桁)
26 ーーーーーーーーーーーーーーー 11010(5桁)
27 ーーーーーーーーーーーーーーー 11011(5桁)
38 ーーーーーーーーーーーーーーー 11100(5桁)
29 ーーーーーーーーーーーーーーー 11101(5桁)
30 ーーーーーーーーーーーーーーー 11110(5桁)
31 ーーーーーーーーーーーーーーー 11111 (5桁)
32 ーーーーーーーーーーーーーー 100000(6桁)
33 ーーーーーーーーーーーーーー 100001(6桁)
34ーーーーーーーーーーーーーーー100010
35ーーーーーーーーーーーーーーー100011
36ーーーーーーーーーーーーーーー100100
37ーーーーーーーーーーーーーーー100101
38ーーーーーーーーーーーーーーー100110
39ーーーーーーーーーーーーーーー100111
40ーーーーーーーーーーーー101000
41ーーーーーーーーーーーーーーー101001
42ーーーーーーーーーーーーーーー101010
43ーーーーーーーーーーーーーーー101011
・ ・
・ ・
・ ・
62 ーーーーーーーーーーーーーーー 111110(6桁)
63 ーーーーーーーーーーーーーーー 111111(6桁)
64 ーーーーーーーーーーーーーーー 1000000(7桁)
65 ーーーーーーーーーーーーーーー 1000001(7桁)
・ ・
・ ・
・ ・
126 ーーーーーーーーーーーーーーー 1111110(7桁)
127 ーーーーーーーーーーーーーーー1111111 (7桁)
128 ーーーーーーーーーーーーーーー10000000(8桁)
・ ・
・ ・
・ ・
253 ーーーーーーーーーーーーーーー11111101(8桁)
254 ーーーーーーーーーーーーーーー11111110(8桁)
255 ーーーーーーーーーーーーーーー11111111(8桁)
256 ーーーーーーーーーーーーーーー100000000(9桁)
257 ーーーーーーーーーーーーーーー100000001(9桁)
マックス 「さあ かけまくるぜ。
そうだな。
まず(2進数)1×(2進数)1だ
もろに何も考えず(2進数)1×(2進数)1をかけあわせると
10進数1×10進数1=10進数1より 予想して
(2進数)1×(2進数)1=(2進数)1になる。
この計算方法が正しいかどうかは
この式(2進数)1×(2進数)1=(2進数)1のなかの
(2進数)1に
(2進数)1を10進数表示で表したものを代入し
右辺と左辺が
等しくなるか確かめてみればいい。
結果は
(2進数)1×(2進数)1=(2進数)1
は
(10進数)1×(10進数)1=(10進数)1
となり右辺と左辺が等しくなる。
よって
(2進数)1×(2進数)1=(2進数)1
は成立しているわけだ
(2進数)1×(2進数)1は(2進数)1となるわけだ
いいじゃ~んん(^^)」
老人 「うむ うむ」
マックス 「では(2進数)10×(2進数)10は?
すなわち もう もろにかけあわせる!
(2進数)10×(2進数)10=(2進数)100 !(大胆にそのまんま10と10をかけてきました)
っこの計算方法がただしいどうかは
(2進数)10と(2進数)100の部分
に
(2進数)10と(2進数)100
を
10進数に表し直したものを
代入し右辺と左辺が
等しくなるかどうか確かめてみればいい。
結果は
(2進数)10×(2進数)10=(2進数)100
は
(10進数)2×(10進数)2=(10進数)4
と右辺と左辺が等しくなり
(2進数)10×(2進数)10=(2進数)100
のように もろに(2進数)10同士をかけあわせて
(2進数)100の結果をだしてもよいことがわかる。」
老人 「2進数同士の掛け算
☆1×1=1
☆10×10=100
全く10進数同士の掛け算と同じじゃな。
2進数とは不思議なものじゃのう・・・」
マックス 「むしろ10進数と違い1と0のみを用いている分
シンプル。なにか美しさを感じる・・・。
むむっ、これはっっ 今やっているのはC言語学習だが、
おもわぬ数学の神秘にであっちゃったかな。」
老人 「そうじゃのう。マックス。
どこからが数学でどこからがコンピュータ学か?・・
それともいろんな学問はつながりあっておるのか。
さても楽しいことよのう。」
マックス 「では(2進数)100×(2進数)100
をもとめてみよっかな
この計算結果はいままでの
2進数同士の掛け算 1×1=1 10×10=100
の結果より
(2進数)100×(2進数)100=(2進数)10000(100と100をもろにかけあわせるわけですね)
と予想される。
この計算方法が正しいかどうか確かめるために
(2進数)100×(2進数)100=(2進数)10000
の
(2進数)100と(2進数)10000に
(2進数)100と(2進数)10000を10進数表示したものを
代入する・・・
(2進数)100は4
(2進数)10000=16
なので
(2進数)100×(2進数)100=(2進数)10000
は
(10進数)4×(10進数)4=(10進数)16
となるわけだ!
左辺と右辺が等しくなった。
このもろに100と100をかけあわせる方法は正解だ。
もし このもろに掛け合わせる計算方法がまちがっていると
(10進数)4×(10進数)4=(10進数)32
とか
左辺と右辺が等しくない
おかしな結果がでてくるのだが・・・
全くその気配すら感じない・・。
2進数のシステムはすごいっ。(^^)
つまりこのことにより
(2進数)100と(2進数)100をもろに掛け合わせても
よいということになる。」
老人 「そうじゃな・・・」
マックス
「最後に(2進数)1110×(2進数)11=?
をもとめてみたいとおもいます。」
老人 「マックスや・・・
おぬしは優しいのう。」
マックス
「いやあ なんのことかな・・・
ははは それにしても2進数・・・
コンピュータのお気に入りだけのことはある。
このシンプルさ・・・
もしかしたら
人間の世界の10進数より使い方は簡単かも・・・
よーし いってみよう! ははは
簡単、簡単
(2進数)1110×(2進数)11=?
うーむ おそらく答えはこうだ
多分この方法だ(^^)/
大体数字を1の位 10の位 100の位とわけていけば
うまくいく。 はず(^^)だ。
(2進数)1110×(2進数)11=
1110×11=
1110×(10+1)=
1110×10+1110×1=
(1000+100+10)×10+(1000+100+10)×1=
(1000=100+100なので)
(100+100+10+10+10)×10+(100+100+10+10+10)×1=
(100=10+10なので)
(10+10+10+10+10+10+10)×10+(10+10+10+10+10+10+10)×1=
さっきの問題より
1×1=1
10×10=100
が成立するので
100+100+100+100+100+100+100+(10+10+10+10+10+10+10)×1=
1+1=10なので
100+100+100+100+100+100+100+(1+1+1+1+1+1+1+1+1+1+1+1+1+1)×1=
1×1=1なので
100+100+100+100+100+100+100+1+1+1+1+1+1+1+1+1+1+1+1+1+1=
100+100=1000なので
1000+1000+1000+100+1+1+1+1+1+1+1+1+1+1+1+1+1+1=
1+1=10なので
1000+1000+1000+100+10+10+10+10+10+10+10=
1000+1000=10000なので
10000+1000+100+10+10+10+10+10+10+10=
10+10=100なので
10000+1000+100+100+100+100+10=
100+100=1000なので
10000+1000+1000+1000+10=
1000+1000=10000なので
10000+10000+1000+10=
10000+10000=100000なので
100000+1000+10=
101010
となる
すなわち
1110×11=
1110×(10+1)=
1110×10+1110×1の計算結果は
101010
となる
また次のような計算方法もあってるんじゃないか?
たぶんだけど・・・・・
1110×11=
1110×(10+1)=
1110×10+1110×1=
(ここでは素直に掛け算をおこなっています この方法があっているかどうかは最後に確認することになります)
11100+1110
ここまででふつうに掛け算の部分は終了する。(註)
つまり1110×11をふつうにかけあわせてみたんだ。
(1110×11をふつうにかけあわせてみたとなっていますが
1110×11=12,210
のようにかけあわせることはできませんのでご注意ください
0と1のみの2進数の計算に10進数の2が混じっていますね
)
11100+1110
を
あとは足し合わせていくだけだ。
11100+1110
は
(10000+1000+100)+(1000+100+10)と分解されるだろう
ここで2進数の足し算では
100と100を足すと1が繰り上がり
100+100=1000
となるので
(10000+1000+100)+(1000+100+10)=
100を2つとも真ん中らへんにもってきて
👇
(10000+1000)+100+100+1000+10=
100+100=1000を用いて変形し
👇
(10000+1000)+1000+1000+10=
となり
2進数の足し算では
1000と1000を足すと1が繰り上がり
1000+1000=10000になるので
(10000+1000)+1000+1000+10=
()をくくりなおして
10000+(1000+1000)+1000+10=
さらに短く
10000+10000+1000+10=
となる。
最後に
2進数の足し算では
10000と10000を足すと1が繰り上がり
10000+10000=100000になるので
今の式は
10000+10000+1000+10=
100000+1000+10=
となり最終的に
101010となる。
つまり
(2進数)1110×(2進数)11=(2進数)101010
となるわけだ
この(2進数)1110×(2進数)11をもろに
掛け合わせた今の計算結果が正しいかどうかは
もろに(2進数)1110と(2進数)11をかけあわせて
答えを得た今の式、
🐣(2進数)1110×(2進数)11=(2進数)101010 🐤
👆
この式の(2進数)1110と(2進数)11と(2進数)101010の部分に
(2進数)1110と(2進数)11と(2進数)101010を10進数に直したものを
代入し右辺と左辺が
等しくなるかどうか確かめてみればいい。
実際にたしかめてみると
(2進数)1110×(2進数)11=(2進数)101010
は
(10進数)14×(10進数)3=(10進数)42
となる。
つまりぃ 右辺と左辺は等しくなり
もろに(2進数)1110と(2進数)11をかけあわせて
答え(2進数)101010
をもとめてみてもよいことになる。
今までのデータの結果から
🐥🐥ふつうに2進数同士を掛け合わせても
正しい答えがでてくる🐧🐧
のはまずまちがいないかな。」
老人 「ようは
2進数同士の計算は(足し算も、引き算も、掛け算も)
簡単に誰にでも計算できてしまうということじゃな。
おぬしがコンピュータに2進数同士の計算を頼まれる日
がくるかもしれんのう ふぉ ふぉ ふぉ」
。。。。。。。。。。。。。。。。。
ここまででふつうに掛け算の部分は終了する。(註)
とマックスはいっていますね。
そう
2進数の掛け算は
1110×10+1110×1=11100+1110
のように
10進数型の掛け算の計算方法をつかっていたのが
2進数の足し算になると
1+1=10
10+10=100
100+100=1000
になるという
2進数独自の計算方法にきりかわっていますね。
つまり
10進数を計算するときは
10進数型掛け算◎
10進数型足し算◎
をおこない
2進数を計算するときは
10進数型掛け算◎
10進数型足し算×→2進数型足し算◎
をおこなうように
計算方法が変化しているのです。
つまり
2進数を計算するときは
10進数型掛け算◎と
2進数型足し算◎の2つの形式が存在する構造となっています
なんか面白いですね。
みなさんはどうおもわれますか?
solarplexussより
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます