Maison >Java >javaDidacticiel >Comment convertir des entiers en tableaux d'octets et vice versa en 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>
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>
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!