バイナリガール

中学最後の文化祭の出し物を作るため、僕は部室にいた。僕が所属するコンピューター部は、部とは名ばかりで、実質部員は僕一人だけだ。だからいつ廃部になってもおかしくないのだが、顧問の先生の力なのか、僕は中学生が触るにはそこそこパワフルなPCを独占できている。コンピューター部を選んだのは、単にPCでゲームができるかな、と思ったからなのだが、顧問の先生に「何か作ってみたいものあるか?」と聞かれて、なぜか「えっと、OSとか?」と口走ってしまい、以来、文化祭で自作OSを展示している。三回目の今年は、メモリ管理まわりをきちんとした、それなりに実用的なOSを展示するつもりだった。

「あーもう」

またクラッシュした。しばらくはまともに動いてくれるのだが、ちょっとメモリに負荷をかけるとシステムが落ちる。ページウォークのどこかにバグがあるに違いない。僕はため息をついて、気分転換に緑色の「バイブル」に手を伸ばす。「OSを作る」と言ったら、顧問の先生が「じゃぁ、これ読みなよ」と渡してくれた本だ。渡された時にもかなり読み込んであったが、さらに僕が何度も読み返したので、だいぶ傷んでいる。その時、

ガチャ

ドアが開く音が聞こえた。時間が来たら先生が部室の鍵を閉めに来るのだが、まだそれには早いはずだ。振り返ると、そこには女の子が立っていた。見覚えのある子だ。クラスは違うが同じ学年のはず。なぜ覚えているかというと、去年の文化祭で僕が作ったOSをずっといじり回してたからだ。確か一昨年も。でもずっと無言だったし、なんとなく話しかけづらかったので、まだ話したことはない。

その子は「バイブル」に目を止めると、僕を見て、歌うように口ずさんだ。

「47 49 46 38 37 61」

なんだ?問いかけるようにその子の顔を見るが、その子はただ僕を見ているだけだ。その表情から感情はよめない。暗号か?しかしなぜ?

しばらく考える。暗号だとしても、これだけ数字が少ないと手がかりがない。その子に、何か試されている気がした。わざわざなぜ部室に来た?コンピュータに興味があるのか?ん?コンピュータ?

僕は先程の数字列をもう一度吟味する。彼女は「よんじゅうなな」とは言わず「よんなな、よんきゅう・・・」と二つずつ数字を区切っていった。なんとなく16進数な気がした。ASCIIで解釈してみるか。えーと、大文字のAが41だから、47は大文字のG、49は二つあとだからIか。次はF?38は41より小さいから、数字だな。・・・8か、次は7。61は小文字のaだ。全部合わせてGIF87a?

「GIFのヘッダ?」

僕がそう答えると、彼女は少しだけ表情を緩めて、また口ずさんだ。

「25 50 44 46 2D 31 2E 34」

今度はDやEが混じった。間違いなく16進数だ。25は・・・なんだっけ?50からはわかる。P、D、F。2Dとか2Eは何かど忘れしたが、何かの記号だろう。31と34は数字だ。1と4。

「PDFの1.4」

彼女は少し頷くと、また言った。

「CA FE BA BE」

全部英字?でもこれまでのパターンからして16進数だろう。でもアスキー文字は含んでない。なんだろう?しばらく考え込んだが、なぜかふと「ハ・コセ」という文字列が頭に浮かんだ。半角カナだ。この文字列はどこかで見た。あれだ。わかった!

「Javaのclassファイル!」

彼女はそれを聞くと、はじめて顔を綻ばせた。そして、また、数字の羅列を言う。こんどは長い。

「E3 81 A9 E3 82 93 E3 81 8B E3 82 93」

12個、つまり12バイトだ。これまでの例から、なんらかのバイナリのヘッダだとすると、それだけ長くないと判別できない、ということか。でも、ASCII文字は一つも含んでない。なんだ?

それから僕は、関連しそうなフォーマットをひたすら列挙したが、どうしてもわからなかった。

「降参だよ。答えを教えて」

顔を上げると、その子はいなかった。いつのまにか帰ったらしかった。結局、彼女の口からは数字の羅列しか出てこなかった。忘れないうちに、と、その12バイトの数字列を「バイブル」の裏表紙に書き込んだ。借り物だが、鉛筆だし、別の紙に書き写したら消そう。

それから、なんとかバグが取れて、文化祭当日にOSのバージョンアップは間に合った。こんな部室棟の端っこにあって、ゲームができるわけでもないコンピューター部の出し物なんて誰も見に来ないけど。少しだけ期待していたのだが、あの女の子は来なかった。そのかわり顧問の先生が現れて、僕のOSの新機能について根掘り葉掘り聞いていった。こうして中学最後の文化祭は終わった。

その子とは別の高校に進学し、高校時代は会うことはなかった。僕は都内の大学に進学し、大学院まで行って、就職もした。念願のOSチームに入ることもでき、それなりに充実した毎日だ。就職後しばらくして結婚し、子供も生まれた。育児に仕事に忙しい日々で、すっかり「あの12バイト」のことを忘れかけていた、そんなある日。

「U! S! A! U! S! A!」

家で晩ごはんを食べながらテレビを見ていると、テレビから最近流行っているらしい音楽が流れてきた。それをなんとなく聞いていると、なぜか頭に「UTF」という言葉が思い浮かんだ。UTF?何かひっかかるものを感じた僕は、本棚にあった「バイブル」を取り出した。すっかり年季が入ったその本は、顧問の先生が「卒業祝いだ」とくれたものだ。裏表紙を開くと、あの数字列がまだあった。

「E3 81 A9 E3 82 93 E3 81 8B E3 82 93」

E3が4つ出てくる、E3、2バイト、E3、2バイトが4回繰り返されている。間違いない、これはUTF-8だ。E3が出る、ということは、ひらがなに違いない。E3のビット列は1110 0011。最初の1110は3バイトで表現するよ、という意味。次の0011が数字だ。えーと、3だな。81とA9は10000001と10101001で、最初の2ビットを削って、4ビットずつにわけるから、0000 0110 1001。つまり0、6、9。U+3069、これは「ど」だ。残りの文字も解析できるぞ。僕は「バイブル」の数字の下に、解読結果を書いた。

「E3 81 A9 E3 82 93 E3 81 8B E3 82 93」
「ど ん か ん」

「どんかん?」

僕が首をひねった時、娘を寝かしつけた妻が寝室から出てきた。

「あら?どうしたの?」

僕は黙って、バイブルに書かれた解読結果を見せた。妻はちょっとびっくりしたような顔をして、頬を赤らめ、

「e3 81 8a e3 81 9d e3 81 84 e3 82 88」

と言った。

この記事が気に入ったらサポートをしてみませんか?