せっかくならアルファベットと数字を使った32進法表記にすると、52文字になる。 数字10文字とアルファベット26文字で36進法にしないのは、0とO、1とI、5とS、8とB、紛らわしいアルファベットを使わないようにしているため。小文字を使わないため、読み上げ時に大文字のA、小文字のBなどと冗長になりません。
ただ、区切りがないと読み上げづらいので、アンダーバーで4桁ずつ区切ることにしたことで、16進法と同じ64文字となりました。
「code4fukui/Base32: Base32 uppercase encoding for JavaScript, based (loosely) on Crockford's Base32」
オープンソース「agnoster/base32-js」をベースにサクッとつくるつもりでしたが、バイナリ未対応だったのでコンセプトとドキュメント以外をリファクタリング。
「bitutil - Code for FUKUI」
必要になった、bit単位で読み書きできる BitWriter.js と BitReader.js を作成。柔軟なビット操作が可能になったので、今回のようなビット操作ももう怖くない!もちろん、ブラウザとDeno、ともに使えるESモジュールです。