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
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; }
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); }
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!