Maison >Java >javaDidacticiel >Comment convertir entre des tableaux d'octets et des entiers en Java : un guide étape par étape
Conversion entre des tableaux d'octets et des entiers en Java
Le stockage de données numériques sous forme de tableaux d'octets offre une flexibilité et une utilisation efficace de la mémoire, en particulier lorsqu'il s'agit de nombres de taille limitée. En Java, la conversion entre des tableaux d'octets et des entiers peut être réalisée à l'aide de techniques simples avec une compréhension claire des opérations sous-jacentes.
Pour convertir un entier (court) en un tableau de 2 octets, on peut utiliser le ByteBuffer Méthode .wrap(). Cette méthode prend un tableau d'octets en entrée et l'enveloppe dans un tampon. Le tampon peut ensuite être lu et écrit à l'aide des différentes méthodes disponibles dans la classe ByteBuffer.
Le code suivant illustre le processus de conversion :
<code class="java">byte[] arr = { 0x00, 0x01 }; ByteBuffer wrapped = ByteBuffer.wrap(arr); // big-endian by default short num = wrapped.getShort(); // 1</code>
Dans cet exemple, un tableau de 2 octets {0x0, 0x1} est encapsulé dans un ByteBuffer nommé enveloppé. Le tampon encapsulé est ensuite utilisé pour récupérer la valeur courte à l'aide de la méthode getShort(), ce qui donne la valeur 1.
La reconversion de l'entier court en un tableau d'octets peut être effectuée à l'aide de la méthode ByteBuffer.allocate() . Cette méthode crée un nouveau ByteBuffer avec une capacité spécifiée. La valeur entière est écrite dans le nouveau tampon à l'aide de la méthode putShort().
<code class="java">ByteBuffer dbuf = ByteBuffer.allocate(2); dbuf.putShort(num); byte[] bytes = dbuf.array(); // { 0, 1 }</code>
Dans cet extrait de code, un nouveau ByteBuffer nommé dbuf est alloué avec une capacité de 2 octets. La valeur courte num est écrite dans dbuf à l'aide de la méthode putShort(). Enfin, la méthode array() est utilisée pour récupérer le tableau d'octets sous-jacent, qui est le même que le tableau d'entrée d'origine, {0x0, 0x1}.
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!