コンピュータ(CPU)でなぜ負の整数の表現として2の補数を使うか

2の補数というのは何かという説明はWikipediaに譲るとします。

結論から言うと、CPU(ハードウェア)的には単なる符号なし整数の加算・減算を行っているだけなのに、人間側の解釈の仕方だけで正負の数の加算・減算を扱えるようにするためです。

いまCPUレジスタ1バイト長であるとします。で、16進数で符号なし整数0xFF(十進数で255)に1を足します。そうすると桁あふれが起こって結果としてこのレジスタの値は0(ゼロ)になります。

0xFF(255) + 1 = 0x100(256) = 0x00  [レジスタは1バイト長固定]

ここでです、もし、人間側が勝手に”1バイト長でのレジスタの値0xFFを-1という意味としよう”と決めたとします。なぜそんなことをするかといえば、そう解釈すると、

0xFF(-1) + 1 = 0

となり、都合が良いからです。

この調子で、0xFEを-2と勝手に解釈すれば…

0xFE(-2) + 2 =  0

おお~、よいですね。

では、符号なし整数で0xFE(254) + 1 = 0xFF(255)ですが、我々の符号付の解釈では…

0xFF(-2) + 1 = 0xFF(-1)

うまくいく!

とまぁ、こんな風に、符号付の計算だけのためのハードウェアをわざわざ用意しなくても、人間側の解釈だけで正負の数が表せるのが2の補数表現のうまみです。

いまごろ映画マトリックスの感想

マトリックスは1999年の作品だそうで、18年も前の作品なんですね。私の時代感覚では結構新しめの映画で、古めのSF映画といえば、やはりブレードランナーなんかが思い出されます。

私はこの作品が好きでブルーレイ・ディスクも持っていますし、ふと思い出しては鑑賞しています。

以下、ネタバレ全開・鑑賞経験ありを前提として書きます。

まず、ちょっと個人的なツボを列挙いたします。

リアル人間殺戮
マトリックスの中で警備員とか警察官とかいわゆる体制側(マトリックス側つまり、コンピュータ側)の治安維持の職についている人が無差別に主人公であるネオなんかに殺されていくんですね。
で、観客はそれを”スゲー”とか”カッコイイ”とか思うのがフツウとして期待されているんですが、私は「え、あの人たちだって、実体の身体がカプセルにあるんだからホントの殺人なのでは…」としばらくしてから気が付きました。
いちおう、モーフィアスが”They are hopelessly dependent on the system” (彼らは救いがたいほどシステム(マトリックス)に依存している)みたいなことを言うのですが、それでも仲間じゃないんかという感じはするんですね。
コスチュームプレイ
マトリックスにインするときは当然、仮想世界なわけで好きな服装を選べるはずなんですね。で、主人公のネオやモーフィアスなんかがキメキメの黒っぽい服装なんですね。
「いちおう、ファッション的なことにも気を配るわけね… オンライン・ゲームのアバターみたいな感じだろうか…」
リアル世界でのディスプレイに文字がダーとなっているのが慣れれば映像に見えるらしい
マトリックスの外のリアル世界でのホバー船の中でオペレーターがディスプレイを見てマトリックス内での状況を判断しているらしいんですが、あんな文字列が滝のように流れている状態を見て、頭の中にマトリックス内の情景が映像としてほんとに浮かぶのかなと思いました。
サイファーが「ああ~、慣れだよ」とかネオに言っていましたが、私は何度か繰り返しみるまで、この文字列の滝が映像に見えるという設定がのみこめませんでした。

気になるフレーズなんかもいくつもあって”There’s a difference between knowing the path and walking the path.”は特に好きですね。

オラクルはネオがThe Oneではないという宣託を下すんですが、それは、ネオがそれを聞く必要があるからオラクルは言っただけだとモーフィアスは主張して。で、改めておまえがThe Oneであるとする、”She told you exactly what you needed to hear, that’s all.”(オラクルはおまえ(ネオ)が聞く必要があることを言っただけだ)も面白いです。




私が使っている英語辞書の紹介

私がPCで使っている英語関係の辞書を紹介いたします。

現在、紙の辞書を私はほとんどまったく使っておりません。オンライン辞書をメインに使っております。
その理由は…

英単語は手本となる発音を聴けることが重要
いま英語を勉強しようと思っている方は英会話ができるようになりたい人が多いのではないでしょうか。その場合、英単語を目で見る機会より音だけで聴くことが圧倒的に多くなると思います。それなら単語の標準的な発音を手軽に聴けないのは問題外ではないでしょうか。
紙の辞書は腐る(なぜなら新しい英単語や、いままであった単語の新しい意味、用法が日々生まれている、逆に廃れる意味、用法もある)
紙の辞書はそれが出版された時点での収録単語や収録されている英単語の意味、用法で時間が止まっています。その点、オンライン辞書はそれを提供している所がやる気があるのなら、日々更新される可能性があるわけです。
紙の辞書にはリンクがない
類義語、反義語などにリンク一発で跳べる利便性は計り知れません。
紙の辞書を引くのはダルい
私が英語を読んだり、書いたり、聴いたり、話したりするときはPCを通してということが多いです。たとえば、Skypeを使った英会話レッスンなんかでも、気が向けばその場で英単語をオンライン辞書で調べることができます。

それではオンライン辞書を具体的に紹介します。

一番よく使っているオンライン辞書は、”Oxford Learner’s Dictionaries“です。無料バージョンで私は満足しています。(スマホ用のアプリもあるようです)

権威的なことを言えば、日本の皇族の留学先としても有名なオックスフォード大学による英英辞書です。
オックスフォードってイギリスじゃねぇかというかたもご安心ください。北米(アメリカ)英語とイギリス英語の両方での意味や用法を調べられますし、発音も二通り用意されております。

またなぜ英英辞書なのかというのも理由があって、いずれ詳しく説明するつもりですが、端的にいうと、ある程度、英語学習が進むと、翻訳通訳をするのでなければ日本語を使う必要がなく、英語だけで単語の概念構築するべきなのがその理由です。