gpt4 book ai didi

base64 - 为什么 ToBase64String 将 16 字节字符串更改为 24 字节

转载 作者:行者123 更新时间:2023-12-03 20:51:34 24 4
gpt4 key购买 nike

我有以下代码。当我检查变量 i 的值时,它是 16 个字节,但是当输出转换为 Base64 时,它是 24 个字节。

   byte[] bytOut = ms.GetBuffer();
int i = 0;
for (i = 0; i < bytOut.Length; i++)
if (bytOut[i] == 0)
break;

// convert into Base64 so that the result can be used in xml

return System.Convert.ToBase64String(bytOut, 0, i);

这是预期的吗?我正在尝试减少存储,这是我的问题之一。

最佳答案

Base64 使用 64 个人类可读的字符(64 个字符 = 6 位信息)表示由 8 位字节组成的输入字符串。

问题答案的关键是编码以 24 位块工作,因此每 24 位或其中的一小部分会产生 4 个字符的输出。

16 字节 * 8 位 = 128 位信息

128 位/每块 24 位 = 5.333 块

所以最终输出将是 6 个块或 24 个字符。

小数块用等号处理,表示尾随的“空位”。在您的情况下,输出将始终以“==”结尾。

关于base64 - 为什么 ToBase64String 将 16 字节字符串更改为 24 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6359493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com