Что такое массив byte []? - PullRequest
14 голосов
/ 22 июня 2010

Что такое массив byte в контексте .NET Framework?

Я знаком со стандартными определениями, такими как array и byte, и очень хорошо знаком с концепциями электронной инженерии, такими как Байт.Но я не могу связать это с точки зрения компьютерных концепций.Я вижу, что это используется везде, и я использую это без действительно глубокого понимания.

Ответы [ 6 ]

18 голосов
/ 22 июня 2010

В .NET, byte - это, в основном, число от 0 до 255 (числа, которые могут быть представлены восемью битами).

Итак, массив byte - это простомассив чисел 0 - 255.

На более низком уровне массив является непрерывным блоком памяти, а байтовый массив является просто представлением этой памяти в 8-битных блоках.

9 голосов
/ 22 июня 2010

A byte[] массив - это просто массив необработанных данных.Например, файл размером 2000 байт можно загрузить в массив byte[] из 2000 элементов.

7 голосов
/ 22 июня 2010

Технически, вся память представляет собой один гигантский массив байтов (до 2 32 адресуемых байтов в 32-битном адресном пространстве). В C # (и C, C ++, Java и многих других языках) байтовый массив - это просто непрерывный кусок памяти. Таким образом, массив byte[n] является блоком n байтов.

Массивы байтов обычно не имеют другого типа, кроме "байта", который является просто 8-битным элементом данных.

Массивы байтов обычно используются для низкоуровневого ввода-вывода, такого как буферы чтения / записи для файлов и сетей, в качестве буферов графических изображений и в качестве «нетипизированных» потоков данных.

Добавление

Байты также известны как октеты , то есть восьмибитовые значения. Октеты - это универсальная единица для обмена данными между практически всеми компьютерами и информационными системами, используемыми сегодня.

Даже системы и кодировки, которые используют что-то отличное от 8-битных значений, по-прежнему используют октеты для чтения, записи и передачи данных между этими системами. Например, звуковые сэмплы аудио CD кодируются как стереопара 16-битных значений со знаком, сэмплированных с частотой 44100 Гц. Однако при обращении к нему в виде простого файла (например, файла WAV) или потока данных он отображается в виде последовательности октетов.

В контексте языков программирования такой звуковой файл может храниться в необработанном виде в виде одного байтового массива.

5 голосов
/ 22 июня 2010

Байт - это 8 бит, а массив байтов - это массив байтов ... Это действительно так просто.

Следует помнить, что символ и байт различны. В старом стиле Си символ и байт были в основном одним и тем же. В .NET символы Unicode могут быть в любом месте от 8 до 32 бит на символ. Это где кодирование вступает в игру. Вы можете преобразовать строку в байтовый массив и преобразовать байтовый массив в строку, используя класс Encoding .

3 голосов
/ 22 июня 2010

Это массив byte. Это двоичные данные - неструктурированные (с точки зрения языка в данный момент времени - отличные от бессмысленных!) Данные, которые могут быть произвольно длинными.

Подумайте о загрузке картинки из файла. Вы должны прочитать файл в byte[] перед началом работы с изображением.

0 голосов
/ 22 июня 2010

Массив байтов: Массив, который имеет только элементы типа Байта.Байт: положительное целое число от 0 до 255, закрытый промежуток.A и B - два байта.

Если C = A + B, то математически C = (A + B) по модулю 256 Если C = A - B, то математически C = (A - B)) по модулю 256

Таким образом, вы можете рассматривать (и иногда использовать) свой байтовый массив из n элементов как число с основанием 256 с n цифрами.

...