コード講座その2

Revised : 2020/07/25
Since : 2020/07/25


Home   | コード(その1) ∥ Base85 | basE91 | Base N

Base85

考え方はBase64と同様である。Base64では3バイトを4文字に変換していたが、Base85では4バイトを5文字に変換する。
Base64では4/3倍になったが、Base85では5/4倍であり効率が良い。4バイト(32ビット)を85進記数法で表す。
n = a × 854 + b × 853 + c × 852 + d × 85 + e(0 <= n < 232)を求め、a,b,c,d,eを出力する。
232 = 4,294,967,296である。また、85進記数法での5桁の数字は855 = 4,437,053,125である。
ちなみに84進記数法では、845 = 4,182,119,424であり表現不可能である。
85文字にどの文字を当てるかや、4バイトとも0や空白文字のとき85文字以外の文字を当てるなどにより複数存在する。
例えば、32/Z85、Ascii85、RFC1924: A Compact Representation of IPv6 Addressesである。

ページの上部へ

basE91

basE91は、Base64よりも多くの記号を利用するため、コンパクトである。
ASCIIコードの印刷可能文字94文字中91文字を利用して符号化する。2文字で 912 = 8,281個まで表現可能である。
213 = 8,192 < 912 = 8,281 < 214 = 16,384であり、13 or 14ビットを2文字で表現する。
13ビットと14ビットの区別については、CBT符号と同様の考え方で出来る。

ページの上部へ

Base N

Base64、Base85、basE91と同様の考え方で、まだまだあるBase Nの符号

Base16 一般的な16進数の記法。RFC4648
Base26 大文字のみ(小文字のみ)
Base32 RFC4648
Base36 英数字(大文字のみ)
Base52 英字のみ(大文字 + 小文字)
Base58 英数字(区別がつきにくい数字0大文字O小文字o、数字1大文字I小文字lの内、数字0大文字O、大文字I小文字lを除く)
Base62 英数字のみ
Base94 印刷可能文字すべて
Base95 印刷可能文字 + 空白文字
Base96以上 UnicodeやShiftJIS等を用いて文字数を増やす

何に使うかにより、以下の点を考慮して新たな符号を作るのも良いだろう。

Nが2のべき乗になる(16, 32, 64)
アクセシビリティが高い(判読性、発声や聞き取りやすさ)
プログラム等の中でエスケープ文字を使用しなくても利用できる(特殊文字を含まない)
符号化してもコンパクトである

ページの上部へ
104種類もの面白くて可愛いドメインがたくさん!ロリポップ!レンタルサーバー★