Maison >Java >javaDidacticiel >Comment convertir entre des tableaux d'octets et des entiers en Java ?

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

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 07:46:02466parcourir

How do I convert between byte arrays and integers in Java?

Conversion entre des tableaux d'octets et des entiers en Java

Lorsque vous traitez des données binaires ou transmettez des valeurs entre systèmes, la conversion entre des tableaux d'octets et des entiers devient essentiel. Cet article examine le processus simple permettant de réaliser cette conversion en Java.

La classe ByteBuffer, située dans le package java.nio, fournit un moyen efficace de gérer la manipulation des octets. Il simplifie la conversion entre les tableaux d'octets et différents types numériques.

Tableau d'octets en entier

Pour convertir un tableau d'octets en entier, utilisez getShort méthode de ByteBuffer :

<code class="java">byte[] arr = { 0x00, 0x01 };
ByteBuffer wrapped = ByteBuffer.wrap(arr); // big-endian by default
short num = wrapped.getShort(); </code>

Le ByteBuffer encapsulé est créé à partir du tableau d'octets d'entrée. Par défaut, Java suppose un ordre big-endian, où l'octet le plus à gauche représente le bit le plus significatif. Alternativement, pour le tri en petit-boutiste, utilisez getIntLittleEndian.

Entier en tableau d'octets

Pour convertir un entier en tableau d'octets, exploitez l'option putShort méthode de ByteBuffer :

<code class="java">ByteBuffer dbuf = ByteBuffer.allocate(2);
dbuf.putShort(num); 
byte[] bytes = dbuf.array(); </code>

Exemple

Considérez un entier 1. Une fois converti en tableau d'octets, il devient {0x00, 0x01}. En effet, 1 est un entier non signé de 16 bits sous forme binaire et chaque octet représente 8 bits. L'octet le plus à gauche stocke les bits les plus significatifs (0x00) et l'octet le plus à droite contient les bits les moins significatifs (0x01).

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!

Déclaration:
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