ric*_*lla 1 algorithm math byte uuencode
我有一个数据流试图用UUencode编码,以便将数据传递到外部芯片.该芯片一次接受512字节的原始数据.我用UUencode编码512字节.
据我所知,数据应转换为11行45个字节(编码后为60个字节)和1个剩余的17个字节行.
显然,17个字节不能直接映射到uuencoded段,因为它不是3的倍数,但是当我得到uuencoded数据时,最后一行返回24个编码字节(或18个原始字节).
这意味着我现在总共有513个字节的数据.我的问题是,这是我的uuencode算法的错误(虽然从纯粹的数学角度来看,我看不出它是怎么回事)或者,额外的字节来自何处,以及如何再次摆脱它?
UUEncoding 512字节将获得684个编码字节(而不是513).长度为384字节的输入数据流将编码为512字节.
UUEncoding只是将3个二进制字节输入数据段转换为4个文本字节输出数据段的手段.任何不是3个字节长的输入段都用空字节填充,直到它为止.UUEncoding算法没有原始数据长度的表示.
将此与UUEncoded文件进行对比,UUEncoded文件通过将流分成特定长度的行并将行长度指示符添加到每个编码数据行的前面来格式化并向数据流添加信息.在您的示例中,您的17个最后字节将被编码为24个字节,但是这一行数据前面会有一个字节,该行的长度为17而不是18.
摆脱填充的唯一方法是首先通过编码数据的长度来知道它在那里.