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

Comment convertir efficacement des entiers en tableaux d'octets en Java ?

Mary-Kate Olsen
Libérer: 2024-11-09 03:09:02
original
765 Les gens l'ont consulté

How to Efficiently Convert Integers to Byte Arrays in Java?

Conversion efficace d'entiers en tableaux d'octets en Java

La conversion d'un entier en tableau d'octets peut être utile à diverses fins, telles que le réseau transmissions ou stockage de données. Il existe plusieurs approches pour réaliser cette conversion.

Classe ByteBuffer :

Une méthode efficace consiste à utiliser la classe ByteBuffer. ByteBuffer est un tampon qui stocke les données binaires et fournit diverses opérations pour les manipuler. Pour convertir un entier en tableau d'octets à l'aide de ByteBuffer :

ByteBuffer b = ByteBuffer.allocate(4); // Allocate a 4-byte buffer
b.putInt(0xAABBCCDD); // Write the integer value to the buffer

byte[] result = b.array(); // Retrieve the byte array from the buffer
Copier après la connexion

Ici, l'ordre des octets du tampon garantit que les octets sont disposés dans le bon ordre.

Conversion manuelle :

Alternativement, vous pouvez convertir manuellement l'entier en octet array :

byte[] toBytes(int i) {
  // Create a new byte array of length 4
  byte[] result = new byte[4];
  
  // Shift bits and assign to each byte
  result[0] = (byte) (i >> 24);
  result[1] = (byte) (i >> 16);
  result[2] = (byte) (i >> 8);
  result[3] = (byte) i;
  
  return result;
}
Copier après la connexion

Cette approche nécessite un décalage de bits explicite et une affectation à chaque octet.

Méthodes d'aide dans java.nio.Bits :

La classe ByteBuffer utilise des méthodes d'assistance internes définies dans java.nio.Bits class :

private static byte int3(int x) { return (byte)(x >> 24); }
private static byte int2(int x) { return (byte)(x >> 16); }
private static byte int1(int x) { return (byte)(x >>  8); }
private static byte int0(int x) { return (byte)(x >>  0); }
Copier après la connexion

Ces méthodes simplifient les opérations de décalage de bits mentionnées ci-dessus.

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