note俳句&短歌「十六夜杯」に参加しつつ、16進数について考えてみます
じゅうろくや…おかしいな変換しても出てこないぞ?と思いググってみると…これ「いざよい」って読むんじゃんか!!私のバカバカバカー!!!
▲アニメ「デート・ア・ライブⅡ」誘宵美九(CV:茅原実里)の声が聴ける動画。一応「いざよい」つながりにて…。とっても素敵な声だから皆様ぜひ聴いてみてねっ!!
んで、十六夜ってなに?
ウィキペディア先生で調べてみると「十五夜の次の日」って書いてあるよ。なるほどそうか、ふーん。…で、十五夜ってなんだっけ?
…ええい、これ以上バカがバレる前に投句(歌)いくよっ!!
俳句
短歌
以上、どちらも読んで伝わらなければ意味ないので、意味や解釈についての説明はいたしません。
それと私は秋の七草ひとつも言えません。
コスモスが秋の七草じゃないと知って軽くショックを受けています。
十六夜にちなんで16進数について考えてみましょう
かなり強引なこじつけですが、俳句や短歌とは何の関係もないネタを持ってくるのがここの芸風みたいなもんなので、ま、どうかひとつ。
皆様は「16進数」という概念についてご存知でしょうか?
情報処理系の勉強をされた方なら馴染み深いかも知れませんが、一般的にはあまり馴染みがないかと思います。
近年では小中学生に対するプログラミング教育が必修化されたりしていますが、それでも16進数をどうこうする機会なんてまずないでしょう。IchigoJamやScratchを多少触っているくらいなら知らなくても問題ないですからね。
16進数とはなにか
16進数とは、16で次の桁に繰り上がる数の数え方のことです。
これに対して、我々が普段日常で使っている数の概念は10進数と言います。
ここで10進数の数の数え方を振り返ってみましょう。
このように10進数では0からスタートしてひとつずつ加えていき、9まで来ると次の数字は位がひとつ上がって桁数が増えます。
これが16進数だとどうなるか。
そう、9で位が上がらずそのままA、B、C、D、E、Fと進んで、Fまで来るとはじめて位が上がって桁数が増えるのです。
なんでこんな数の概念があるのかというと、もともとコンピュータが2進数をベースとしていることが始まりなんですね。
2進数は0と1しかない世界なので、数の数え方がこうなっています。
コンピュータは0と1しか理解しないからこれで良いのですが、人間にとっては長いわ分かりづらいわでたまったもんじゃありません。
そこで人間にも扱いやすいように16進数に変換するのですよ。
なんで16進数?10進数じゃダメなの?という疑問も出てきそうですが、計算上16進数の方がラクで、なおかつシンプルにまとまるというメリットがあるのです。たとえば2進数の「10011110」を16進数にすると「9E」になります(10進数だと「158」)。
どーですかどーですかっ?十六夜の読み方や秋の七草が分からなくたって、こーいうのならお茶の子さいさいなんですよーだ!!
どうしてそうなるのか?(特に②の計算)についてはここでは端折って説明しているのでご容赦を。興味ある方は「16進数 2進数 計算」とかで検索するといくらでも出てくるのでそちらをご参照ください。
まぁとにかく、ここでのポイントは
・我々が普段生活に使っている数の概念は「10進数」である。
・この世には他に「2進数」とか「16進数」という概念がある。
(8進数とかもありますがここでは触れません)
ということです。
16進数はこんなところで使われています
2進数は普通に暮らしてる限りあまり出てくることがありませんが、16進数はときたまひょっこり顔を出すことがあります。どんなときに出てくるかと言うと…。
① Webなどの色指定
これはホームページ作成用ソフトの画面。皆様はこのような色の表記を見たことありませんか?黒はオール0、白はオールF。これが16進数を使った色の表現なのです。
ちなみに普通グラフィックツールなんかだと、純粋な白のことを「R255、G555、B255」(私たちはよく「にーごーごーにーごーごーにーごーごー」なんて言ったりしますw)と表記しますが、この「255」という10進数を16進数で表すと「FF」になります。なので「FFFFFF」は純粋な白ってわけ。Web関係のお仕事なんかではたまに16進数色コードを使うことがあるので、こういう概念があると覚えておくと良いかもです。
② IPアドレス(v6)
私たちが普段見慣れている?のは、192.168…といういつものやつで、これはインターネットにおけるプロトコル(通信規約)のIPv4というものです。これに対し、IPv6の方は「240f:33:5693:1:e8ff:4a5d…」となっており、16進数によって表記されています。詳しい話はここでは端折りますが、IPv4の枯渇状況により今後はIPv6が次第に幅を利かせてくるということから、我々が16進数に触れる機会もまた増えることが予想されます。
IPアドレスなどについてより詳しく知りたい方はこちら。
③ マシン語などプログラミング
このあたりになるとプログラムの打ち込みをする人くらいしか縁がないかもしれませんが…。
なに書いてあるんだか分かんないでしょ?安心してください。私にも分かりません!分かっているのはこれが気が遠くなるほど長く続いていて、それを全部打ち込むとゲームが遊べるらしいということだけです。昔はこういうのを来る日も来る日も打ち込んでは、いつの日か遊べるかも知れないゲームに思いを馳せていたものでした(遠い目)。
マシン語はすべて16進数なので0~Fまでの文字しか出てこないのですが、それゆえにワケが分からなすぎて、打ち込むのがひたすら辛かったです。絶対あの当時のキーボードは0~Fまでのキーだけ消耗が激しかったよな…。ちなみに打ち間違えるとエラーとか出さずに機械が暴走するというのがマシン語プログラムの常。エヴァンゲリオンかよっ!!
なおマシン語でなくとも、BASICのPEEK文やPOKE文などメモリーアドレスを参照する命令が出てくると16進数で書かれていたりします。
さて、ここからは私がこれまでの人生で最も悩まされた、ある16進数の問題についてお話ししたいと思います。
「ポートピア連続殺人事件」PC-6001版の暗号
「ポートピア連続殺人事件」というゲームがあります。ドラクエシリーズのシナリオ制作でその名を広く知られた堀井雄二氏が1983年に手掛け、エニックス(現:スクウェア・エニックス)より発売されたコマンド入力方式のアドベンチャーゲームです。
▲さすがにいまはPC版は売ってないか。それにしてもすごい値段だな…。
当時はPC-8801、PC-8001mkⅡ、PC-6001、FM-7、X1など多くのパソコン機種用に発売された人気タイトルでした。これのファミコン版移植が同機における非リアルタイム謎解きゲームの先駆けとなり、後に同じエニックスから発売されるドラクエの素地を作ったとされています。
ゲームの内容についてはさておき、今回は問題の16進数が用いられた暗号を紹介したいと思います。これです。
さすがに当時プレイしたゲームそのものは手元になかったため、山下先生の著作より抜粋させていただきました。この「ポートピア連続殺人事件」の中に暗号解読のシーンがあるのですが、この内容がなんと発売された機種ごとに異なっているのです。堀井さん無駄に凝り過ぎだよっ!!私がプレイしたのはPC-6001mkⅡ版なのですが、その暗号がこれなのです。
つまりこれは、上段の「0F14010E090D」をどうにか変換すると「みなと」になるのですね。で、その法則に従って下段を読めというものです。正しく解ければ、ある場所で行なわれる闇取引を暴くことに成功します。
いまだからこそ見た瞬間に「あ16進数だこれ」って分かりますが、私がこれをプレイしたのは学生の頃。数学や理科で赤点取りまくり、高校行けるのか危ぶまれていたくらい理数系嫌いな私でした。
そんなもんだから自力で解けるはずもなし。山下先生の当時の連載ならびに本書にはとてもお世話になったものです。そこに書かれたこの暗号のヒントは以下のようなものでした。
分からんわー!!
つか16進数ってなによ?
んな言葉初めて聞いたわ!!(←当時の私)。
まぁ、パソコンやってたにしてはモノ知らな過ぎってのもありますけどね。
16進数が分からなかった当時の私は、以下のような推理でこれを解いたのです(記憶かなり曖昧ですが…)。
ここまで考えて私ははじめて親に「ある謎を解いたら答えこれになったんだけど、そんな名前の生き物いるだろうか?」と聞き、アンタはどれだけモノ知らないのかと呆れられたものでした。
ともあれ、それが正解だったのです。
ヒントはここまで。当時16進数→10進数への変換を知っていたらもっと簡単に解けたはずですが、まぁ作者が考え付きもしなかった方法で真実に迫った記録ということで。これの答えが知りたい方は「PC6001版ポートピア暗号」とかでググれば回答出してるサイトが見つかります。まぁでも、このページのどこかに存在するヒントに気付けば、賢明な皆様ならお分かりになるかと思いますよ?ええ、よく見ればね。16進数なんか関係なく!
今宵はどんな月が見えるのでしょうか
俳句と短歌の話からずいぶんと飛んだものですね。いまごろ審査員の方もすっかり呆れ果てて、「もうこんなイミフな奴の作品はボツにしてやろう」と思っておられるに違いありません(笑)。
人の感情に訴える文章は相変わらず苦手な私ですが、これに懲りずこれからも俳句&短歌大会に参加させていただければ幸いでございます。
んで、十六夜って結局なんなんでしたっけか。
16個数えると桁がひとつ上がる夜の数え方で合ってますかね?