Voici une fonction à calculer Go package ascii85
MaxDecodedLen()
pour n
octets codés.
func MaxDecodedLen(n int) int {
const binWordLen = 4
return n * binWordLen
}
Si les quatre octets d'un groupe non codés sont nuls, ils sont représentés par un seul octet, le caractère z
, au lieu de cinq points d'exclamation (!!!!!
). Dans certaines implémentations, un groupe d'espaces non codé peut être représenté par le caractère unique y
.
ascii85.Decode()
, contrairement à ascii85.Encode()
, a nombre d'octets consommée (nsrc
) et flush
paramètres, en plus d'un certain nombre d'octets écrits paramètre (ndst
), qui permet au programmeur de décoder de multiples blocs ou d'un bloc seul tenant par cas pièce. Par conséquent, un tampon de destination inférieur au MaxDecodedLen()
peut être utilisé.
@thiya: le calcul de la taille maximale de la mémoire tampon doit prendre en compte la compression. – peterSO