在java中生成随机16位数字
我试图用java生成一个随机的16位数字。我知道如何为给定范围生成随机数。有谁能帮我生成一个16位的随机数吗 您可以调用Random类在在java中生成随机16位数字,java,Java,我试图用java生成一个随机的16位数字。我知道如何为给定范围生成随机数。有谁能帮我生成一个16位的随机数吗 您可以调用Random类在Short.MAX_VALUE范围内生成随机数,该范围约为0-65535。通过添加Short.MAX\u值和Short.MIN\u值 示例: new Random().nextInt(1 + Short.MAX_VALUE - Short.MIN_VALUE); 16位数字是一个具有16位数字的二进制数。因此,它将在范围内 0000 0000 0000 000
Short.MAX_VALUE
范围内生成随机数,该范围约为0-65535
。通过添加Short.MAX\u值
和Short.MIN\u值
示例:
new Random().nextInt(1 + Short.MAX_VALUE - Short.MIN_VALUE);
16位数字是一个具有
16位
数字的二进制数。因此,它将在范围内
0000 0000 0000 0000 = 0
1111 1111 1111 1111 = 65535 (2^16-1)
因此,您可以:
Random r = new Random();
r.nextInt(65536); // 65536 will not be considered, return integer in range [0,65535]
据英国《每日邮报》报道
返回一个伪随机的、均匀分布的int值,该值介于0(包括)和指定值(排除)
你试过四处看看吗?你发现了什么?如果你知道数字是16位,你可以很容易地计算出范围…生成一个随机数并屏蔽其中的16位嘿,它起作用了;-)如果“范围”是指数值范围:你是指
random.nextInt(1)吗?这是不对的。首先,nextInt()
的上限是独占的。此外,Short.MAX\u值实际上是。@user3580294 Short-min是32768,Short-MAX是32767这是真的,但是nextInt()
的上限是独占的。因此您的方法实际上永远不会返回65535。此外,您忘记了一个右括号。我想您的意思是1+Short.MAX\u VALUE-Short.MIN\u VALUE
或是1@PeterLawrey相同的结果。对于您的第一个示例。