首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UUencode校验和故障

UUencode校验和故障
EN

Stack Overflow用户
提问于 2011-06-22 23:10:22
回答 1查看 467关注 0票数 1

我有一个数据流,我正在尝试用UUencode编码,以便将数据传递到外部芯片。该芯片一次可接受512字节的原始数据。我用UUencode编码了512个字节。

据我所知,数据应该转换为11行45字节(编码后将是60字节)和1行17字节的剩余行。

显然,17个字节不能直接映射到uuencoded段,因为它不是3的倍数,但是当我拿回uuencoded数据时,最后一行返回24个编码字节(或18个原始字节)。

这意味着我现在总共有513字节的数据。我的问题是,这是我的uuencode算法的错误(尽管从纯数学的角度来看,我不知道它是怎么回事),或者,额外的字节从哪里来,我如何再次摆脱它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-22 23:57:21

UUEncoding 512字节将得到684个编码字节(而不是513字节)。长度为384字节的输入数据流将恰好编码为512字节。

UUEncoding仅仅是一种将3个二进制字节的输入数据段转换为4个文本字节的输出数据段的方法。任何长度不是3个字节的输入段都会被填充空字节,直到它被填充为止。UUEncoding算法没有原始数据长度的表示。

与此形成对比的是,UUEncoded文件通过将数据流拆分成特定长度的行,并在每个编码的数据行的前面添加行长度指示符,来格式化数据流并向其添加信息。在您的示例中,您的17个最后一个字节将被编码为24个字节,但是该行数据的前面将有一个字节,该字节将给出行的长度为17而不是18。

消除填充的唯一方法是首先通过编码数据的长度来知道它就在那里。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6442157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档