2022年02月02日
2月2日は郵便番号が7桁化された日だったりします。時に1998年2月2日。
報道で気付いただけですが。
元は5桁だったわけです。□□□-□□こんな感じですね。
7桁だと□□□-□□□□ですね。
今でも覚えてるんですが、この7桁化に際して、事前の報道ではアルファベットも使うような話もあったんですね。
結果的には数値だけしか使わなかったんですが。
なんでこんなことを覚えているかというと、当時、自分で住所録のプログラムを作っていたからなんですね。
データ登録にはランダムファイルを使う仕様にしていたので、自分でフィールドの割当を考えないといけないわけで。
データベースを自分で作るようなものです。
一度フィールドのデータ割当を決めてしまうと、後から変更するのは無理なんですよね。変えられなくはないけど、変えるとデータの割当が合わなくなってしまうんですよね。
ここからはプログラムというかデータ形式の話になるので、普通の人はチンプンカンプンだと思います。
確か郵便番号が5桁の時にプログラムが完成していて、7桁化の話が出ていたんですね。
その際、下2桁の部分を1バイトずつ割り当てるということをしたわけです。
2桁の数値だけなら、1バイトで足ります。1バイト整数で扱えばいいだけですので。
2桁だと00~99までですが、1バイト整数だと0~255まで表記出来ますので。
なのに、わざわざ2バイトを割り当てて、1桁に1バイトを使うようにしたわけです。
この時、1桁に1バイトを使用するのですが、書き込む際は数値の文字コードで単純に書き込むようにしたわけです。
この1桁に1バイトを使用するというのが、後に7桁化への拡張が可能になった理由です。
2桁を追加で書き込む必要が出るのですが、少なくとも、旧データが異常動作を起こさないように互換性を保ったまま、書き込むようにします。
具体的には元々の1桁に追加の1桁を計算処理で混合・分離するようにするわけです。
はっきりいって、手間ではありますが、データ互換を保つためですので、まあ、致し方ないところ。
このお蔭で、5桁版のプログラムで7桁版のデータを表示すると、下2桁が仮名文字になったりしたんだったかな。
文字コードの都合ですが。ただ、少なくともデータが壊れるとかはないんですね。フィールドの割当は変えてないので。
逆に7桁版のプログラムで5桁版のデータを表示しても問題なく表示されるようにしてあるわけです。
最低限の上位互換を維持するようにしたと。
コンピュータの2進数やら、ビットやらを見ていればすぐに思い付きそうなことなんですが、私の場合、ビデオテープレコーダーの信号処理の本とかを見ていて、周波数多重化で信号を書き込んでいるのを見て思い付いたという。(^^;
家庭用ビデオの場合、周波数の低いところに色信号、色信号より高い周波数の所に輝度信号を持ってくるといった、信号の多重化処理をしていたわけです。
読み出す時にはバンドパスフィルターで色信号や輝度信号を分離します。
これを単純な計算処理でやってみただけ。理屈をまねただけですね。
2進数を見ていたら、8ビットあれば、上位4ビットと下位4ビットに分けるとかも考えただろうけど。
ただ、それだと数値しては記録出来るけど、文字として表示する際には文字コードに合うように変換しないといけないんだけどね。
ま、その辺のことは分かる人だけ分かればいいけど。
つまり、先に書いたように7桁データを5桁版のプログラムで表示すると仮名になったりするというのは、文字コードの文字の部分のところで混合分離をしたからです。
コントロールコードとかの部分は使わないようにしたということでして。
文字コードの部分であれば、そのまま表示しても文字になるので、画面表示がおかしくなったりしないわけです。
これがコントロールコードだったりすると、画面が消えたりとかがありますのでね。
当時はいろんなことを考えてプログラムを書いたりしていたんだなあと、ちょっと懐かしくなりました。
まあ、ほとんど人にはなんのこっちゃという話でしょうけど。
Posted at 2022/02/02 20:36:56 | |
トラックバック(0) |
報道 | ニュース