为了账号安全,请及时绑定邮箱和手机立即绑定

解码Ascii85的长度

解码Ascii85的长度

Go
蛊毒传说 2021-03-31 10:11:56
ascii85具有获取最大编码长度的功能MaxEncodedLen()。我认为它应该像在Base64中一样,也具有在解码时获得长度的功能。http://golang.org/pkg/encoding/ascii85/
查看完整描述

2 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

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


func MaxDecodedLen(n int) int {

    const binWordLen = 4

    return n * binWordLen

}

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


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


查看完整回答
反对 回复 2021-04-26
?
PIPIONE

TA贡献1829条经验 获得超9个赞

我认为,在对MaxEncodedLen()进行编码时,必须知道保持编码输出所需的字节数(即目标缓冲区大小)。
在解码的情况下,调用方可以传递大小等于源缓冲区的目标缓冲区,尽管目标缓冲区的大小可以较小。
或者,如果编码和解码的执行上下文/范围相同,则可以使用原始源,即普通非编码缓冲区大小。因此,期望的函数MaxDecodedLen()是可选的。

查看完整回答
反对 回复 2021-04-26
  • 2 回答
  • 0 关注
  • 305 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信