クリスマスなので、初期仏典をプレゼント!

仏教の初期経典であるダンマパダスッタニパータを先着何名かにプレゼントします!(何名かは峯島の気分次第、たぶん2~3人)

連絡先を書いてこのエントリにコメントをつけてください。先着順です。

コンピュータ(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.”(オラクルはおまえ(ネオ)が聞く必要があることを言っただけだ)も面白いです。