シミュレートそふと(読み込み…?編)

研究の都合で、MATLAB国土地理院が作った地形図ファイルを読み込ませる必要が出てきました。そこから地表を衛星から見たらどう見えるかシミュレートするのです。っていうか、私の先輩方は地形図を買うだけ買って、シミュレートソフトは作ってくれなかったのでしょうか。三日くらいで作れるといいな。
仕様書を読むと、どうやら地形図ファイルは一マスが50メートル四方で、それが200×200マス。つまり10[km]四方の地形情報が一つのファイルに含まれている形になります。各マスの標高は1バイト文字5ケタの数字で表されていて「12345」なら「標高1234.5[m]」という仕組み。各行の頭に9バイト分ヘッダがあるのと、改行で2バイト使うのとで、合計すると1011バイト×200行あります。地形図ファイルは、地図の緯度経度や日本語名などを含む1011バイトのヘッダがあるので、これを含めて1011×201行という実にありがたい仕様です。
ヘッダ以外の、肝心の標高情報はASCIIの文字コードと共通の部分(要は半角数字)なので、Shift_JISに対応してないソフトでも地形情報は読めるはず。
というわけで、1時間くらいで読み込みソフトを作成。改行コードが2バイトあるのを忘れて「あるぇーなんでずれるんだろー?」とか10分くらいやってたのはここだけの秘密。
ただ、改行コードうんぬん以前に、なぜか標高が数字じゃなく文字コード番号として読み込まれることが大問題に。ASCII文字として読み込めるはずなので、"0x30"なら"0"と出力されるはず。にもかかわらず出力は"48"。ちょっとまてそれは10進だ。どうしてこうなった。
まあ、コード番号が出力されるなら、そこから数字を逆算すればいいだけなのですが、なんか頭悪いなぁ。ヘッダを削るという助言をいただいたが、ファイルの数が膨大なので(なにしろ全国津々浦々が10キロ四方ごとに1ファイルなのだ)番号から逆算した方が手間がかからんし。というか、動けばいいのだ(工学部的発想)。