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()可以使用小于的目標緩沖區。

PIPIONE
TA貢獻1829條經驗 獲得超9個贊
我認為,在對MaxEncodedLen()進行編碼時,必須知道保持編碼輸出所需的字節數(即目標緩沖區大?。?。
在解碼的情況下,調用方可以傳遞大小等于源緩沖區的目標緩沖區,盡管目標緩沖區的大小可以較小。
或者,如果編碼和解碼的執行上下文/范圍相同,則可以使用原始源,即普通非編碼緩沖區大小。因此,期望的函數MaxDecodedLen()是可選的。
- 2 回答
- 0 關注
- 344 瀏覽
添加回答
舉報
0/150
提交
取消