マイナスの魔法
7分30秒 | FE基本情報
基本情報技術者試験の頻出テーマを解説した動画コンテンツです。
トランスクリプト(字幕テキスト)
コンピューターってどうやってマイナスの数を扱ってるか考えたことありますか? 実は、コンピューターって引き算が苦手なんです。 意外ですよね。 今回はその問題を解決するためのある賢いトリック、そう、いわばマイナスの魔法の秘密を解き明かしていこうと思います。 そう、今回の中心となる謎はまさにこれです。 コンピューターは足し算しかできないのにどうやって引き算をするのか? 普通に考えたら不可能に思えますよね。 でもコンピューターはちゃんと答えを出してくる。一体どうやっているんでしょうか? 答えは実はとってもシンプルで、でもすごく賢いんです。 全ての引き算を得意な足し算の問題にガラッと変えちゃうんです。 これこそが現代のコンピューター演算を可能にしている魔法のトリックの核心なんです。 では最初のセクションです。 そもそもなんでコンピューターがそんな巧妙なトリックを必要とするのか、その背景から見ていきましょう。 まずはちょっと基本の確認から。 ご存知の通り、コンピューターは0と1だけで会話しますよね? 今回はこの4つの箱、つまり4ビットで数を考えていきます。 例えばプラスの3はここに書いてある通り
0011と表わされます。これはシンプルですよね? ではこれを例に話を進めていきましょう。 さあ、ここからが本題です。 この魔法のトリックがどういうものなのかちょっと見ていきましょう。 一体どんな謎が隠されているんでしょうか? ここでちょっと不思議な数字が出てきます。 マイナスの3、つまりマイナス3がですね、なんと1101っていう一見すると全く関係なさそうな数字で表されるんです。 なんでこうなるのかっていう理由はまだ秘密です。 でもこの謎の数字こそが今回のトリックの鍵を握っているんです。 さあ、いよいよ魔法の実演です。 プラス3にさっきの謎の数字マイナス3を足してみましょう。 答えどうなると思いますか? ちょっと予想してみてください。 では実際に計算してみましょうか。 上がプラス3の0011。 で、下がマイナス3を表すという1101。 これを普通に足し算します。 さあ、どんな答えが出てくるでしょうか? どうでしょう?正解は0です。 ちゃんと3-3は0っていう正しい答えになりましたよね? これでこの方法がうまくいくってことが分かりました。 でも同時に、「え、なんで?どうしてこうなるの?」っていう大きな疑問が湧いてきますよね? その秘密を次のセクションで解き明かしていきましょう。 ではお待たせしました。いよいよこの魔法のトリック、その秘密の種明かしと参りましょう。 このトリックの正体は2の補数って呼ばれているものなんです。 やり方は驚くほど簡単。 たったの2ステップです。 ステップ1、全てのビット、つまり0と1を全部ひっくり返す。 そしてステップ2、その結果に1を足す。 たったこれだけって思いませんか? そう、これだけなんです。 ではこの手順をさっきのプラス3で実際にやってみましょう。 スタート地点は0011ですね。 これをマイナス3に変えていきますよ。 いきますよ! まずステップ1、反転です。 0は1に、1は0に。 見ててくださいね。 ほら、パタパタパタっと。 全てのビットが一瞬でひっくり返って0011が1100に変わりました。 そして魔法の仕上げです。 ステップ2、さっきの1100に1をちょこんと足してあげます。 するとどうでしょう?1101が完成しました。 これでさっきの謎の数字の正体が分かりましたね。 このシンプルな2ステップでちゃんとマイナス3を表す魔法の数字、1101が作り出されたわけです。 なるほどって感じですよね。 さて、種が分かったところで、もう1回だけこの魔法が本当に正しいのか最終証明を見ていきましょう。 もう一度この足し算をじっくり見ていきましょう。 一番右の桁から。 1 + 1は2進数だと10になりますよね? だから答えは0になって左に1つ繰り上がります。 次の桁は1 + 0にさっきの繰り上がりの1が加わるので、また0になって1つ繰り上がる。 これを左端まで繰り返していくと結果は10000になります。 ここで、すっごく重要なポイントがあります。 今回は4ビット、つまり4つの箱だけで計算するっていうルールでしたよね? 計算結果は5桁になっちゃいましたけど、5つ目の箱はないんです。 だから溢れ出ちゃった一番左の1は行き場がなくてそのまま消えちゃうんです。 というわけで、4つの箱の中に残るのは0000。つまり答えは0です。 これでこの魔法のトリックが完璧に機能するってことがもう一度証明されました。 見事な種明かしでしたね。 さて、トリックの仕組みはもうばっちりですね。 ではここからはなぜこの魔法がそんなに重要なのか、このちょっと変わった計算方法が僕たちの世界で一体どんな意味を持っているのかを解説していきます。 このトリックのすごさは、この比較を見れば一目瞭然です。 もしこの方法がなかったら左側みたいに足し算用の回路と引き算用の回路、2つも複雑なものが必要だったんです。 でも2の補数のおかげで右側のようにたった1つのシンプルな回路で足し算も引き算もできちゃう。 これがどれだけ効率的か想像できますよね? ハードウェアがシンプルになるから早くなるし、安くもなるわけです。 はい、ということで今回の解説の要点をまとめましょう。 まずコンピューターは引き算を足し算に変えるっていう賢いトリックを使っている。 そのトリックの正体は2の補数、ビットをパタパタっと反転して1を足すだけでしたね。 そして最も重要なのが、このおかげで私たちの使うコンピューターはより早く、より安く、よりシンプルになっているということです。 この3点はぜひ覚えておいてください。 まさにこの言葉の通りだと思います。 2の補数は単なる面白い小技とか、そういうレベルの話じゃないんです。私たちが毎日当たり前のように使っているスマホやパソコン、その全てのデジタルの世界を根っこの部分から支えているものすごく重要で基礎的な考え方なんです。 最後にこんな問いを投げかけて終わりにしたいと思います。 今、皆さんが見ているこの画面、使っているそのデバイスの中にも今回お話ししたような目には見えないけれど世界を動かしている素晴らしい魔法がきっとまだまだたくさん隠されているはずです。 次にスマホを手に取る時、少しだけその裏側を想像してみるのも面白いかもしれませんね。このコンテンツは Web society で視聴・学習できます。