如何在Java中的边界内创建随机数显示为二进制值?

Shr*_*vas 1 java random binary

我能够用随机方法生成随机数.但我想创建以二进制格式显示的随机数.数字必须在特定范围内.

随机数应介于5到10位之间.

例如:011110,0111100,010110101.

Bla*_*ugh 5

尝试以下代码片段(从此Stack Overflow问题生成随机数)

import java.util.Random;

public class Main {
    private static Random random = new Random();
    private static final int MAX = 1023;
    private static final int MIN = 16;

    public static void main(String[] args) {
        Integer randInt = random.nextInt((MAX - MIN) + 1) + MIN;
        System.out.println("random binary is: " + Integer.toBinaryString(randInt));
    }
}
Run Code Online (Sandbox Code Playgroud)

MIN为16强制执行至少5个二进制数字,其中:

10000等于16

MAX为1023强制最多10个二进制数字,其中:

111111111等于1023

Utility方法Integer.toBinaryString(int)将转换Integer为二进制可读格式(强制执行唯一的'1和'0条件)

  • `11111`不是63,它是31,而'10000`也是5位数而且是16.所以`MIN = 16;`可能更有意义.同样,MAX应为1023. (2认同)
  • 此解决方案永远不会找到带有前导零的数字.此外,它没有试图避免重复的数字. (2认同)
  • 编辑该问题是为了删除重复规定,作者在评论中指出零是重要的(见上面的评论).但它似乎并不重要,所以没关系. (2认同)