Las secuencias de bytes contienen, bueno, bytes. Desglosado en lo que realmente es, son 8 bits compuestos de 1s y 0s. Si representara un número, sería cualquier número de 0 a 255 (lo cual, puedo agregar, no es una coincidencia por qué los 4 números en una dirección IP siempre varían de 0 a 255). Las secuencias de bytes suelen ser interfaces sofisticadas destinadas a ocultar la matriz de bytes básica subyacente utilizada para contener un búfer circular (usted llena el búfer y espera a que alguien lo vacíe, en ese momento simplemente vuelve a llenar el búfer).
¿Qué diablos representa eso? Bueno, podría representar un archivo de texto, o una imagen, o una transmisión de video en vivo. Lo que es depende completamente del contexto de quién lo está leyendo. La representación hexadecimal es otra forma de decir lo mismo, aunque a veces es más conveniente administrar bytes en términos de su representación hexadecimal en lugar de números, sin embargo, es lo mismo.
Cuando se refiere a datos sin procesar, generalmente se refiere a datos de bytes. Los datos vienen sin una etiqueta que diga "¡Soy un archivo de imagen!" Por lo general, solo maneja datos sin procesar cuando realmente no le importa lo que los datos representan en general. Por ejemplo, si quisiera convertir una imagen a su versión en blanco y negro, podría decir que lea los datos en bruto de una imagen y por cada 3 bytes leídos (que en realidad sería una representación de color rojo, una representación de color verde y una representación de color azul), agregue su valor numérico y divídalo entre 3, luego escriba ese valor 3 veces. Esencialmente, lo que estaría haciendo es promediar los valores rojo, verde y azul de un píxel y hacer su píxel gris equivalente a partir de eso. Sin embargo, cuando habla de realizar operaciones con datos en el nivel de "byte por byte", no
O tal vez desee guardar un archivo en una base de datos, pero le pide que inserte sus "datos sin procesar" en un tipo de datos de blob. Esto simplemente significa convertir los datos de un archivo en una gran matriz de bytes que la base de datos puede comprender y administrar. Descubrirá que cuando recupera ese valor de la base de datos, será simplemente una matriz de bytes grande como se proporcionó inicialmente a la base de datos. Si esos datos eran un archivo, entonces usted, el programador, debe reinterpretar esos datos de bytes como si estuviera leyendo un archivo de un byte a la vez.
Si alguien le pidiera que "invierta los datos de 4 bytes", supongo que se refiere a la interpretación de números big-endian vs little-endian, que escribe números que comienzan con el byte más o menos significativo. No importa si un número se representa como big-endian o little-endian, solo que todos los sistemas que leen el número lo interpretan de manera consistente.
Esto no quiere decir que la representación numérica real (o la representación hexadecimal) cambie, simplemente que el orden en que estos 4 bytes forman un número debe invertirse. Digamos que tienes 0x01, 0x02, 0x03 y 0x04. Para revertir estos, tendría 0x04, 0x03, 0x02, 0x01 en su lugar. Presumiblemente, el sistema leería estos 4 bytes en el orden inverso y, como ya lo ha invertido, el valor se interpreta como el mismo que se pretendía en los datos sin procesar.
¡Espero que esto lo explique!