首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取解码Ascii85的长度

获取解码Ascii85的长度
EN

Stack Overflow用户
提问于 2010-04-29 18:36:18
回答 2查看 731关注 0票数 1

ascii85有一个函数可以获取编码MaxEncodedLen()的最大长度。

我认为它应该有一个函数来获得解码时的长度,就像在Base64中一样。

http://golang.org/pkg/encoding/ascii85/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-30 04:51:48

这是一个计算n编码字节的Go package ascii85 MaxDecodedLen()的函数。

代码语言:javascript
复制
func MaxDecodedLen(n int) int {
    const binWordLen = 4
    return n * binWordLen
}

如果未编码组的所有四个字节都为零,则它们由单个字节(字符z )而不是五个感叹号(!!!!!)表示。在一些实施方式中,未编码的空格组可以由单个字符y表示。

ascii85.Encode()不同,ascii85.Decode()具有消耗的字节数(nsrc)和flush参数,以及写入的字节数(ndst)参数,这允许程序员逐段解码多个块或单个块。因此,可以使用小于MaxDecodedLen()的目的地缓冲器。

票数 0
EN

Stack Overflow用户

发布于 2010-04-29 18:58:30

在我看来,在编码时,MaxEncodedLen()必须知道保存编码输出所需的字节数(即目标缓冲区大小)。

其中,在解码的情况下,调用者可以传递大小等于源缓冲区的目标缓冲区,尽管目标缓冲区可以更小。

或者,如果编码和解码的执行上下文/范围相同,我们可以使用原始源,即普通的非编码缓冲区大小。因此,预期的函数MaxDecodedLen()是可选的。

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

https://stackoverflow.com/questions/2736604

复制
相关文章

相似问题

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