阅读完 base64 wiki 后...
我正在尝试弄清楚公式是如何工作的:
给定长度为 n 的字符串,base64 长度将为
即:4*Math.Ceiling(((double)s.Length/3)))
我已经知道 base64 长度必须为 %4==0
才能让解码器知道原始文本长度是多少。
序列的最大填充数可以是 =
或 ==
。
wiki :The number of output bytes per input byte is approximately 4 / 3 (33% overhead)
问题:
如何上述信息与输出长度 的关系?
最佳答案
每个字符用于表示 6 位 (log2(64) = 6
)。
因此用4个字符来表示4 * 6 = 24位= 3字节
。
因此您需要 4*(n/3)
个字符来表示 n
个字节,并且需要四舍五入为 4 的倍数。
由于四舍五入为 4 的倍数而产生的未使用填充字符的数量显然将是 0、1、2 或 3。
关于string - Base64长度计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13378815/