Les flux d'octets contiennent, ainsi, des octets. Décomposé en ce qu’il est en réalité, il s’agit de 8 bits composés de 1 et de 0. S'il s'agissait d'un nombre, ce serait n'importe quel nombre compris entre 0 et 255 (ce qui, permettez-moi d'ajouter, n'est pas une coïncidence si les 4 chiffres d'une adresse IP vont toujours de 0 à 255). Les flux d' octets sont généralement des interfaces sophistiquées destinées à masquer le tableau d'octets de base sous-jacent utilisé pour contenir un tampon circulaire (vous remplissez le tampon et attendez que quelqu'un le vide, puis il remplit simplement à nouveau le tampon).
Qu'est-ce que ça représente? Cela pourrait représenter un fichier texte, une image ou un flux vidéo en direct. Ce qu'il est dépend entièrement du contexte de qui est lu. La représentation hexadécimale est une autre façon de dire la même chose, bien qu'il soit parfois plus pratique de gérer les octets en termes de représentation hexadécimale plutôt qu'en chiffres, mais c'est la même chose.
Lorsque vous faites référence à des données brutes, vous faites généralement référence à des données en octets. Les données sont fournies sans étiquette indiquant "Je suis un fichier image!" Habituellement, vous ne traitez que des données brutes lorsque vous ne vous souciez pas vraiment de ce que les données représentent globalement. Par exemple, si je voulais convertir une image en version noir et blanc, je pourrais peut-être lire les données brutes d'une image et pour chaque lecture de 3 octets (ce qui serait en fait une représentation de la couleur rouge, une représentation de la couleur verte et une représentation de l'image). couleur bleue), ajoutez sa valeur numérique et divisez-la par 3, puis écrivez cette valeur 3 fois. Essentiellement, je ferais la moyenne des valeurs de rouge, de vert et de bleu d'un pixel pour en faire son pixel équivalent gris. Cependant, lorsque vous parlez d'effectuer des opérations sur des données au niveau "octet par octet", vous ne
Ou peut-être souhaitez-vous enregistrer un fichier dans une base de données, mais il vous est demandé d'insérer ses "données brutes" dans un type de données blob. Cela signifie simplement convertir les données d'un fichier en un tableau d'octets volumineux que la base de données peut comprendre et gérer. Vous constaterez que lorsque vous récupérerez cette valeur dans la base de données, il s'agira simplement d'un tableau d'octets volumineux tel que vous l'aviez initialement fourni à la base de données. Si ces données étaient un fichier, vous, le programmeur, devez réinterpréter ces données d'octet comme si vous lisiez un fichier octet à la fois.
Si quelqu'un vous demandait d '"inverser les données sur 4 octets", je suppose que cela fait référence à une interprétation big-endian vs little-endian des nombres, qui écrit les nombres commençant par l'octet le plus ou le moins significatif. Peu importe si un nombre est représenté en tant que big-endian ou little-endian, tous les systèmes qui le lisent l’interprètent de manière cohérente.
Cela ne veut pas dire que la représentation du nombre réel (ou la représentation hexadécimale est changée), mais simplement que l'ordre dans lequel ces 4 octets font un nombre doit être inversé. Alors disons que vous avez 0x01, 0x02, 0x03 et 0x04. Pour inverser cela, vous auriez plutôt 0x04, 0x03, 0x02, 0x01. Le système lirait probablement ces 4 octets dans l’ordre inverse et, comme vous l’avez déjà inversée, la valeur est interprétée comme étant identique à celle prévue dans les données brutes.
J'éspère que ça l'explique!