Я работаю программистом уже несколько лет, но у меня никогда не было , чтобы понимать операции низкого уровня с байтами. Однако меня это интересует, и я хотел бы больше узнать о работе с байтами.
В приведенном ниже коде я читаю текстовый файл, который содержит только слова "привет там".
FileStream fileStream = new FileStream(@"C:\myfile.txt", FileMode.Open);
byte[] mybyte = new byte[fileStream.Length];
fileStream.Read(mybyte, 0, (int)fileStream.Length);
foreach(byte b in mybyte)
Console.Write(b);
Console.ReadLine();
В этом случае переменная mybyte содержит числовые значения, которые представляют десятичный аналог ASCII. Тем не менее, я байт представляет биты, которые, в свою очередь, представляют двоичные значения. При чтении байта я ожидаю увидеть двоичное значение, например «0001010», а не «104», которое является символом ascii для «h».
В случае чтения изображения, при чтении изображения в байтовый массив я снова вижу числа в массиве, а из низкоуровневого восприятия я бы ожидал двоичные значения. Я знаю, что эти числа, очевидно, не отображаются в Ascii, но я запутался, почему при чтении строки они сопоставляются с числами Ascii, а при чтении потока изображения происходит что-то еще (на самом деле я не уверен, что представляют собой числа в случае чтения изображения).
Я знаю, что значение чисел в байтовом массиве не критично, но меня это очень интересует.
Может ли кто-нибудь пролить свет на байты в .net framework при чтении из текстового файла и при чтении двоичного файла (т.е. изображения). Спасибо
Это изображение является байтовым массивом, содержащим текст "hi there", прочитанный из myfile.txt
Это изображение является байтовым массивом, содержащим поток изображения