Що ми маємо на увазі під масивом Byte? [зачинено]


103

Може, будь-хто, будь-ласка, поясніть, я точно не розумію.

Що таке масив байтів?

Де і коли ми використовуємо це в додатках / програмах?

які переваги та недоліки використання байтового масиву?


Я думаю, це має сенс; тому що якщо ви читаєте Java I / O класи; наприклад, ByteArrayInputStream; ByteArrayOutputStream. Якщо хтось не розуміє ByteArray, як пояснити, що означає ByteArrayInputStream, ByteArrayOutputStream?
CuriousMind

Відповіді:


74

Байт - 8 біт (двійкові дані).

Байтовий масив - це масив байтів (тавтологія FTW!).

Ви можете використовувати байтовий масив для зберігання колекції двійкових даних, наприклад, вмісту файлу. Мінусом цього є те, що весь вміст файлу повинен бути завантажений в пам'ять.

Для великої кількості бінарних даних було б краще використовувати тип потокових даних, якщо ваша мова їх підтримує.


16
Щоб отримати надзвичайно педантичний, байт не гарантовано становить 8 біт. Це, безумовно, фактичний стандарт сьогодні, але історично це не завжди було так. en.wikipedia.org/wiki/Byte
JaredPar

14
@JaredPar: точний, але я думаю, що для відмови від відповідальності потрібно буде трохи зайвий раз, коли хтось заявить, що байт становить 8 біт.
Діна

6
@Dinah, я згоден, саме тому я додав педантичну відмову. Я щойно переглянув відповідну сторінку сьогодні.
JaredPar

6
Чи можете ви, будь ласка, запалити The downside to this is that the entire file contents must be loaded into memory.?
CodeYogi

1
@JeffOrris не впевнений, що ви маєте на увазі під "перетворенням у байтовий масив" . Ти зазвичай це не робиш. Також "менш вразливі" до чого?
Філ

56

Я припускаю, що ви знаєте, що таке байт. Байтовий масив - це просто область пам'яті, що містить групу суміжних (поруч) байтів, таких, що має сенс говорити про них по порядку: перший байт, другий байт тощо.

Так само, як байти можуть кодувати різні типи та діапазони даних (числа від 0 до 255, числа від -128 до 127, поодинокі символи, що використовують ASCII, наприклад, 'a' або '%', оп-коди процесора), кожен байт у масиві байтів може бути будь-яка з цих речей або сприяти деяким багатобайтовим значенням, таким як числа з більшим діапазоном (наприклад, 16-бітний неподписаний int від 0..65535), міжнародні набори символів, текстові рядки ("привіт") або частина / всі складені комп'ютерні програми.

Найважливішим у байтовому масиві є те, що він надає індексований (швидкий), точний, необроблений доступ до кожного 8-бітного значення, яке зберігається в цій частині пам'яті, і ви можете оперувати цими байтами, щоб контролювати кожен окремий біт. Погано, що комп'ютер просто сприймає кожен запис як незалежне 8-бітове число - що може стосуватися вашої програми, або ви можете віддати перевагу якомусь потужному типу даних, наприклад, рядку, який відстежує власну довжину та зростає за необхідності, або номер з плаваючою комою, який дозволяє зберігати вимову 3,14, не замислюючись про дотепне подання. Як тип даних, неефективно вставляти або видаляти дані поблизу початку довгого масиву, оскільки всі наступні елементи потрібно перемішувати, щоб зробити або заповнити пробіл, створений / необхідний.


1
Дуже гарне пояснення !!!
Sundararaj Govindasamy

11

З Вікіпедії :

В інформатиці структура масиву даних або просто масив - це структура даних, що складається з набору елементів (значень або змінних), кожен з яких ідентифікується одним або декількома цілими індексами, що зберігаються так, що адресу кожного елемента можна обчислити з його індексу кортеж за простою математичною формулою.

Отже, коли ви говорите байтовий масив, ви посилаєтесь на масив певної визначеної довжини (наприклад, кількість елементів), який містить набір елементів розміру байт (8 біт).

У C # байтовий масив може виглядати так:

byte[] bytes = { 3, 10, 8, 25 };

Вибірка вище визначає масив з 4 елементів, де кожен елемент може бути довжиною до байта .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.