/
| x
| C
| E
ここから、「0xff、0x10、0x84」というバイナリが「/xCE」という文字列に変換されることになります。
ちなみに。バイナリデータが必ず3の倍数バイトとは限りません。1バイト、または2バイトのあまりが出る可能性もあります。
そんなときは=をもちいて、足りない分のデータを埋めます。
簡略化して「1バイトのデータのエンコード」をしてみましょう。
0000 0000
| ---- ----
| ---- ----
|
これを、6ビットづつ取り出し、6ビット*4つのデータに切り分けなおします。
0000 00
| 00----
| ---- --
| -- ----
|
一文字目はよいですね。二文字目は、「----」の部分を「0000」に置き換えてエンコードします。
3文字目と4文字目は、エンコードはせずに換わりに'='の文字を、それぞれ3文字目と4文字目にいれてあげます。
これで、問題なくエンコードが可能になります。
デコードは、原則として逆手順になるだけなので省略します。
ただ、デコード対象の文字列の長さが4の倍数で無い場合、また文字の後ろに=が一つないし二つついている場合の処理には気をつけてください。
戻る
Copyright 2003 M-Fr Net All Right Reserved
E-Mail:info@m-fr.net
|