CHAPTER 3
70
Syntax
Specifically, ASCII base-85 encoding produces 5 ASCII characters for every 4
bytes of binary data. Each group of 4 binary input bytes, (b
1
b
2
b
3
b
4
), is converted
to a group of 5 output bytes, (c
1
c
2
c
3
c
4
c
5
), using the relation
(
b
1
×
256
)
+
(
b
2
×
256
)
+
(
b
3
×
256
)
+
b
4
=
(
c
1
×
85
)
+
(
c
2
×
85
)
+
(
c
3
×
85
)
+
(
c
4
×
85
)
+
c
5
In other words, 4 bytes of binary data are interpreted as a base-256 number and
then converted to a base-85 number. The five bytes of the base-85 number are
then converted to ASCII characters by adding 33 (the ASCII code for the
character
!
) to each. The resulting encoded data contains only printable ASCII
characters with codes in the range 33 (
!
) to 117 (
u
). As a special case, if all five
bytes are 0, they are represented by the character with code 122 (
z
) instead of by
five exclamation points (
! ! ! ! !
).
If the length of the binary data to be encoded is not a multiple of 4 bytes, the last,
partial group of 4 is used to produce a last, partial group of 5 output characters.
Given
n
(1, 2, or 3) bytes of binary data, the encoder first appends 4
n
zero bytes
to make a complete group of 4. It then encodes this group in the usual way, but
without applying the special
z
case. Finally, it writes only the first
n
+
1 characters
of the resulting group of 5. These characters are immediately followed by the
~>
EOD marker.
The following conditions (which never occur in a correctly encoded byte
sequence) cause errors during decoding:
4
3
2
1
3
2
1
The value represented by a group of 5 characters is greater than 2
32
1.
A
z
character occurs in the middle of a group.
A final partial group contains only one character.
Index Bookmark Pages Text
Previous Next
Pages: Index All Pages
This HTML file was created by VeryPDF PDF to HTML Converter product.