Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 预测base64编码字节的字节大小[]_C#_Base64 - Fatal编程技术网

C# 预测base64编码字节的字节大小[]

C# 预测base64编码字节的字节大小[],c#,base64,C#,Base64,我试图预测base64编码字节数组的大小字符串表示形式 我提出了下面的公式,但是实际encodedString的长度比base64EncodedSize大4 这里的全部思想是计算/预测给定字节[]的编码字符串大小。我不希望仅仅为了确定它的长度而将字节[]转换为基数为64的字符串 FileInfo pdfFile = new FileInfo(@"C:\TEMP\1.pdf"); long originalSizeInBytes = pdfFile.Length; String encoded

我试图预测base64编码字节数组的大小字符串表示形式

我提出了下面的公式,但是实际
encodedString
的长度比
base64EncodedSize
大4

这里的全部思想是计算/预测给定
字节[]
的编码字符串大小。我不希望仅仅为了确定它的长度而将
字节[
]转换为基数为64的字符串

FileInfo pdfFile = new FileInfo(@"C:\TEMP\1.pdf");

long originalSizeInBytes = pdfFile.Length;

String encodedString = Convert.ToBase64String(File.ReadAllBytes(pdfFile.FullName));

long base64EncodedSize = (originalSizeInBytes / 3) * 4;

----------------------------------------------------------------------------------
- Results -
-----------------------------------------------------------------------------------
  originalSizeInBytes                           913663  long
  base64EncodedSize                             1218216 long
  encodedString.Length                          1218220 int
  base64EncodedSize                             1218216 long
  encodedString.Length - base64EncodedSize      4       long
那将是

long base64EncodedSize = 4 * (int)Math.Ceiling(originalSizeInBytes / 3.0);

哦,天哪。在乘法之前是整数除法吗?你想知道为什么结果太小了?哇,我不敢相信我没有注意到。事情总是简单的。:)谢谢