如果我知道对base64进行编码时数据的大小,是否可以计算数据的大小?
使用base64编码时,我的文件大小为450KB,但解压缩的大小是多少?
有没有找到输出大小而无需先解压缩文件的方法?
最佳答案
I've a file that is 450KB in size when base64 encoded but what size is it decompressed?
实际上,您不会“解压缩”,而是解码。结果将小于编码数据。
由于Base 64编码对于原始数据的每6位需要〜8位(或4个字节以存储3个),因此数学运算很简单:
Encoded Decoded
450KB / 4 * 3 = ~ 337KB
Base64和解码的字符串之间的开销几乎恒定,为33.33%。我之所以说“接近”,是因为末尾的填充字节(
=
)使字符串长度为4的倍数。请参见一些示例:String Encoded Len B64 Pad Space needed
A QQ== 1 2 2 400.00%
AB QUI= 2 3 1 200.00%
ABC QUJD 3 4 0 133.33%
ABCD QUJDRA== 4 6 2 200.00%
ABCDEFGHIJKLMNOPQ QUJDREVGR0hJSktMTU5PUFE= 17 23 1 140.00%
( 300 bytes ) ( 400 bytes ) 300 400 0 133.33%
( 500 bytes ) ( 668 bytes ) 500 666 2 133.60%
( 5000 bytes ) ( 6668 bytes ) 5000 6666 2 133.36%
... tends to 133.33% ...
计算未编码数据的空间:
让我们获取上面提到的
QUJDREVGR0hJSktMTU5PUFE=
值。=
的数量:在这种情况下,为1(我们只需要检查编码数据的最后2个字节)。
因此,我们需要17个字节来存储数据。
关于file - 如果450KB base64编码的数据大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34109053/