Comment ajouter un rembourrage sur un tableau d'octets?
J'ai cette 40 bits clé dans un byteArray
de taille 8, et je veux ajouter des 0 de rembourrage jusqu'à ce qu'il devient 56 bits.
byte[] aKey = new byte [8]; //How I instantiated my byte array
Des idées comment?
Ne sais pas si je suis votre question, pourriez-vous s'il vous plaît confirmer: Vous avez un tableau d'octets de taille 8 qui stocke une clé de 40 bits (c'est-à 5 octets) et que vous souhaitez gauche de la tablette (ou ajouter) le unset bits (ou 0) jusqu'à la 56e peu. Est ma compréhension de la droite?
oui vous avez raison je crois.
oui vous avez raison je crois.
OriginalL'auteur Napmi | 2013-10-20
Vous devez vous connecter pour publier un commentaire.
8 tableau d'octets est de 64 bits. Si vous initialisez le tableau comme
tous les octets sont initialisés à 0. Si vous définissez la première de 40 bits, qui est de 5 octets, puis 3 autres octets, j'.e, de 41 à 64 bits sont toujours à 0. Donc, vous avez par défaut à partir de la 41e peu à la 56e ensemble de bits à 0 et vous n'avez pas à les rétablir.
Toutefois, si votre tableau est déjà initialisé avec des valeurs et vous souhaitez effacer les bits de 41 à 56, il ya quelques façons de le faire.
Première:
vous pouvez simplement mettre en
aKey[5] = 0
etaKey[6] = 0
Ceci permettra de définir la 6ème bye et 7 de l'octet, qui constituent à partir de la 41e à la 56e bits, de 0Deuxième: Si vous travaillez avec des bits, vous pouvez également utiliser BitSet. Cependant, dans votre cas, je vois d'abord une approche beaucoup plus facile, surtout si vous êtes pré Java 7, certaines des méthodes ci-dessous n'existent pas et que vous avez à écrire vos propres méthodes à convertir à partir du tableau d'octets bits et vice-versa.
Remarque:
BitSet.valueOf(byte[])
etBitSet.toByteArray()
n'existe qu'à partir de Java 7.OriginalL'auteur SrikanthLingala
Utilisation Du Système.arraycopy() pour insérer deux octets (56-40 = 16 bits) au début de votre tableau.
System.out.println(Arrays.toString(array));
dans la méthodeprintArray(byte[] array)
pour imprimer un tableauBien sûr, une bonne remarque. Je suis de l'utilisation de base de java les tableaux vraiment rare 🙂
OriginalL'auteur Stanislav Mamontov
Goyave est
com.google.common.primitives.Bytes.ensureCapacity
:ou depuis JDK6 à l'aide de Java native outils:
OriginalL'auteur 30thh