J'ai des nombres comme 10101, 1000, 11101, .... et ainsi de suite. Je veux stocker ces nombres en utilisant la classe bitset, mais je ne sais pas comment faire? S'il vous plaît aider
Réponses
Trop de publicités?Il existe une implémentation de BitSet dans l'API standard de Java SE, vous devriez essayer d'utiliser celle-là.
Si vous souhaitez utiliser une représentation en nombre binaire pour créer un BitSet
, cela peut être fait en deux étapes:
-
Utilisez le constructeur de BigInteger qui prend une chaîne de caractères et une base comme arguments. Pour le binaire, la base est 2.
-
Initialisez un
BitSet
à partir de la représentation en tableau d'octets duBigInteger
en appelant BigInteger.toByteArray() avec BitSet.valueOf().
par exemple
BigInteger a = new BigInteger("10101", 2); //base 2 pour binaire
BitSet aBits = BitSet.valueOf(a.toByteArray());
BitSet.valueOf()
est nouveau dans Java 7 ne fonctionnera donc pas sur les versions antérieures de Java.
Modifier:
Si vous n'aimez pas initialiser BigInteger
avec des chaînes de caractères et que vos nombres binaires rentrent dans 64 bits, vous pouvez également utiliser les littéraux binaires de Java 7 et initialiser le BigInteger
en utilisant la méthode BigInteger.valueOf(long).