Maison > Java > javaDidacticiel > le corps du texte

Comment convertir des entiers en tableaux d'octets et vice versa en Java ?

Linda Hamilton
Libérer: 2024-10-26 16:37:30
original
401 Les gens l'ont consulté

How do you convert integers to byte arrays and vice versa in Java?

Conversion d'entiers en tableaux d'octets et vice versa en Java

Le stockage de nombres dans des tableaux d'octets est une opération fondamentale en programmation. Comprendre le processus de conversion entre les entiers et les tableaux d'octets est essentiel pour manipuler les données efficacement.

Entier en tableau d'octets

Pour convertir un entier en tableau d'octets, vous pouvez utiliser ByteBuffer, une classe du package java.nio. Cette classe offre un moyen pratique d'interagir avec des données binaires. Voici un exemple :

<code class="java">byte[] arr = { 0x00, 0x01 }; // Source byte array
short num = 0;

ByteBuffer wrapped = ByteBuffer.wrap(arr); // Wraps source array in a buffer
wrapped.get(num); // Reads 2 bytes from the buffer and stores in num</code>
Copier après la connexion

Ce code enveloppe le tableau d'octets source dans un ByteBuffer et lit les deux premiers octets (0x00 et 0x01) dans un nombre entier court (num).

Byte Array to Integer

Pour reconvertir un tableau d'octets en entier, vous pouvez utiliser la même classe ByteBuffer. Voici un exemple :

<code class="java">byte[] arr = { 0x00, 0x01 };
ByteBuffer dbuf = ByteBuffer.allocate(2);
dbuf.put(arr); // Writes source bytes to the buffer
short num = dbuf.getShort(); // Reads 2 bytes from the buffer and stores in num </code>
Copier après la connexion

Ce code écrit le tableau d'octets source dans un ByteBuffer, puis lit les deux premiers octets (0x00 et 0x01) dans un nombre entier court (num).

Comprendre le code

La clé pour comprendre la classe ByteBuffer est qu'elle utilise un ordre d'octets (big-endian ou small-endian) pour déterminer la disposition des octets dans le tableau. Big-endian signifie que l'octet le plus significatif est stocké au début du tableau, tandis que small-endian le stocke à la fin.

Par défaut, le ByteBuffer utilise l'ordre des octets big-endian. Vous pouvez spécifier un ordre petit-boutiste en appelant enveloppé.order(ByteOrder.LITTLE_ENDIAN) avant d'effectuer une opération.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!