字节[]的C#问题

Bha*_*kar 3 c#

我正在将文件加载到byte []中.根据我的理解,byte []应包含特定的字节元素(8位).当我打印每个字节时,它们都不是8位(即它们的长度不是8).我的代码:

FileStream stream = File.OpenRead(@"C:\Image\Img.jpg");
byte[] fileByte = new byte[stream.Length];
stream.Read(fileByte, 0, fileByte.Length);

for (int i = 0; i <= fileByte.Length - 1; i++)
{
  Console.WriteLine(Convert.ToString(fileByte[i], 2));
}
Run Code Online (Sandbox Code Playgroud)

输出:

10001110
11101011
10001100
1000111
10011010
10010011
1001010
11000000
1001001
100100
Run Code Online (Sandbox Code Playgroud)

我认为我的理解在这里是错误的,你能告诉我(或提供一些教程链接)我错过了这个.

Mic*_*ers 18

领先0不打印.


Dav*_*vid 13

将数字转换为字符串时,会丢失任何前导零.(请注意,所有条目都以"1"开头.)您可以使用PadLeft将它们重新放入.

   FileStream stream = File.OpenRead(@"C:\Image\Img.jpg"); 
   byte[] fileByte = new byte[stream.Length]; 
   stream.Read(fileByte, 0, fileByte.Length); 

   for (int i = 0; i <= fileByte.Length - 1; i++) 
   { 
      Console.WriteLine(Convert.ToString(fileByte[i], 2).PadLeft(8,'0')); 

   }
Run Code Online (Sandbox Code Playgroud)