2000/12/15 [金]
uuencode とは、Unix で昔から用いられている、バイナリをテキストに変換するプログラムです。これに用いられている変換方式は、Base64 の基礎となっています。したがって、知っておく価値はあるでしょう。uuencode で用いられている基本的な変換方法は次の通りです。
基本変換方法
- 文字列の先頭から順に 3 文字単位で変換を行います。任意の時点の 3 つ文字 ABC のビットを次のように表現します。
A7 A6 A5 A4 A3 A2 A1 A0 B7 B6 B5 B4 B3 B2 B1 B0 C7 C6 C5 C4 C3 C2 C1 C0
- このビット列の MSB から 6 bit 毎に切り出し、上位 2 bit を 0 にしたバイト列にします。
0 0 A7 A6 A5 A4 A3 A2 0 0 A1 A0 B7 B6 B5 B4 0 0 B3 B2 B1 B0 C7 C6 0 0 C5 C4 C3 C2 C1 C0
- 各バイトに 0x20 を加算します。ただし加算の結果 0x20 になったバイトは 0x60 にします。これは、つまり「`!"#$%&'()*+,-./0123456789
:;<=>?@ ABCDEFGHIJKLMN OPQRSTUVWXYZ [\]^_」の表を引くということになります。 - 変換した結果を出力します。
- 入力文字列がなくなるまで繰返します。
by seclan