使随机位存储在布尔数组中

时间:2014-03-04 11:49:16

标签: java arrays random boolean bits

我正在寻找一种将随机位组存储到数组中的方法。下面的代码并不完整,但我只想帮助理解如何随机化一组位。

public static boolean[] makeRandomBits(int size) {
    BitSet[] bitArray = new BitSet[size];
    for(int i=0; i<size; i++){
        bitArray[i].set(/*Right here is where my confusion is*/);
    }

    /*other stuff below*/
}

我正在寻找输出:01101001

2 个答案:

答案 0 :(得分:0)

Random random = new Random();
boolean[] arr = new boolean[size];
for (int i = 0; i < size; ++i) {
   arr[i] = random.nextBoolean();
}
return arr;

答案 1 :(得分:0)

课程java.math.BigInteger提供constructor,可以创建您可以在位级别操作的给定BigInteger的随机bitLenght

Random r = new Random();
int numBits = 32;

BigInteger bi = new BigInteger(numBits,r); 

如果您需要它是BitSet

BitSet bs = BitSet.valueOf(bi.toByteArray());

有关详细信息,请查看BigIntegerBitSet javadoc。