Потоки байтів містять, ну, байти. Розбиті на те, що це насправді, це 8 біт, складених з 1s і 0s. Якби воно представляло число, це було б будь-яке число від 0 до 255 (що, можу додати, не випадково, чому 4 числа в IP-адресі завжди варіюються від 0 до 255). Потоки байтів - це, як правило, складні інтерфейси, призначені для приховування базового байтового масиву, що використовується для утримання кругового буфера (ви заповнюєте буфер і чекаєте, коли хтось його виповнить, і тоді він просто знову заповнює буфер).
Що чорт це представляє? Ну, це може представляти текстовий файл, або зображення, або прямий відеопотік. Те , що він є повністю залежить від контексту , який читає його. Шістнадцяткове представлення - це ще один спосіб сказати те саме, хоча іноді зручніше керувати байтами з точки зору їх шестигранного представлення, а не чисел, однак це одне і те ж.
Коли ви посилаєтесь на необроблені дані, ви зазвичай посилаєтесь на дані байтів. Дані надходять без тегів, які говорять "Я файл зображення!" Зазвичай ви маєте справу з необробленими даними лише тоді, коли вас не цікавить, які дані представляють загалом. Наприклад, якщо я хотів перетворити зображення у його чорно-білу версію, я можу сказати, щоб прочитати вихідні дані зображення та на кожні 3 прочитані байти (що насправді було б представленням червоного кольору, зображенням зеленого кольору та представленням синій колір), додайте його числове значення та діліть на 3, потім запишіть це значення 3 рази. По суті, те, що я б робив, - це усереднення червоних, зелених та синіх піксельних значень пікселя та створення його сірого еквівалентного пікселя. Однак, коли ви говорите про виконання операцій з даними на рівні "байт за байтом", ви не хочете "
Або, можливо, ви хочете зберегти файл у базі даних, але він просить вставити його "необроблені дані" у тип даних blob. Це просто означає перетворити дані файлу у великий байтовий масив, який база даних може зрозуміти та керувати. Ви побачите, що коли ви отримаєте це значення з бази даних, це буде просто один великий байтовий масив, як ви спочатку надавали базі даних. Якщо ці дані були файлом, то ви, програміст, повинні повторно інтерпретувати ці дані, як ніби ви читали файл один байт.
Якби хтось попросив вас "повернути 4-байтні дані", я вважаю, що це стосується інтерпретації чисел з великим ендіаном проти малого-ендіану, яка записує числа, починаючи з найбільшого або найменш значущого байта. Не має значення, чи число представлене як велике-ендіанське або мало-ендіанське, лише те, що всі системи, що читають число, інтерпретують це послідовно.
Це не означає, що фактичне представлення чисел (або шістнадцяткове подання для цього питання) змінюється, просто щоб порядок, у якому ці 4 байти роблять число, повинен бути змінений. Тож скажіть, що у вас є 0x01, 0x02, 0x03 та 0x04. Щоб змінити їх назад, натомість у вас буде 0x04, 0x03, 0x02, 0x01. Система, ймовірно, читала б ці 4 байти у зворотному порядку, і оскільки ви вже повернули її, значення інтерпретується таким самим, як і призначене у вихідних даних.
Я сподіваюся, що це пояснює!