← メディア一覧

引き算を足し算に変える2の補数

3分36秒 | FE基本情報2進数

基本情報技術者試験の頻出テーマを解説した音声コンテンツです。

トランスクリプト(字幕テキスト)

今回はあなたが持ってきてくださったこの資料、2の補数で引き算を足し算に変えるという解説台本を深掘りしていきましょう。 コンピューターが面倒な引き算をどうやって得意な足し算だけでやっちゃうのか、そのエレガントな仕組みに迫ってみたいと思います。 これは本当にコンピューター科学の根幹に関わるすごく美しいテーマなんですよ。 美しいですか。 そうです。単なる計算のテクニックというだけでなく、この2の補数というアイデアがあったからこそ、CPUの回路設計が劇的にシンプルになって はい。コストも下がるし、処理速度も上がる。 まさに一石三鳥な画期的な発明だったんです。 回路を単純化ですか。 それは面白そうですね。 では早速その中心になる手順について、資料によると何か呪文があるそうです。 その呪文こそが、専門用語で言う2の補数を求める計算そのものなんです。 はい。ある数字のマイナス表現を作り出すための、具体的なプロセスですね。 それが「ひっくり返して1を足す」です。 「ひっくり返して1を足す」、このリズムです。 なるほど。「ひっくり返して1を足す」、このリズムをまず覚えるわけですね。 ひっくり返して1を足す。 そうです。ただの0と1の羅列を見て、どうやってコンピューターはそれがマイナスの数だとわかるんですかね? いいところに気づきましたね。 そこがこの仕組みの最も重要なルールなんです。 はい。ここはもしかしたら試験に出るかもしれないくらい大事なポイントなのでよく聞いてください。 お願いします。 いいですか?一番左のビットが1ならマイナス。 一番左のビットが1ならマイナス。 これだけなんです。 このルールがあるおかげで区別がつく。 なるほど。そういうことか。一番左の桁は数字そのものではなく、プラスかマイナスを示す符号の専門家ってわけですね。 まさにその通りです。 ということは、例えば8ビットのデータだったら数字を表せるのは実質7ビット分で、残りの1ビットは符号のために予約されている、というイメージですか? その通りです。表現できる正の数の範囲が半分になるというトレードオフはあるんですけども。 それと引き換えでも余りあるメリットがあったんです。 先ほど言った回路の単純化がまさにそれですね。 はい。このルールのおかげでCPU5+3のような足し算も、5-3という引き算も 5 + -3というマイナスの数を足す計算に。 そうです。それを全く同じ足し算専用の回路、加算器だけで処理できるようになった。 引き算のための別の回路をわざわざ作る必要がなくなったんです。 なるほど。 これは初期のコンピューター設計においてとてつもないブレークスルーだったんですよ。 それはすごいですね。呪文というよりは、ものすごく賢くてエレガントな約束事なんですね。 実は初期のコンピューターではマイナスを表現する方法はいくつか試されたんです。 その中でこの2の補数が最も効率的で、今でもほぼ全てのコンピューターで使われている、いわば競争を勝ち抜いたスタンダードなんですよ。 本当に面白い。今回はプラスとマイナスの話でしたが、ふと思ったんです。 はい。コンピューターって0と1だけで、一体どうやってもっと複雑な小数点とか分数を表現しているんだろうって。 そこもまた深い話ですね。 そこにはまた別の巧妙な仕組みが隠されているのかもしれないですね。

このコンテンツは Web society で視聴・学習できます。