【发布时间】:2017-04-20 00:21:39
【问题描述】:
我正在尝试生成一个随机的正 8 位整数。 ThreadLocalRandom.current().nextInt(min, max) 的文档特别指出 min 是最小包含界限,而 max 是最大排除界限。但是,如果我将 max 设置为 > 128 的任何值,我偶尔会得到一个负值。
这似乎与整数的位有关,但文档没有说明 nextInt() 的位。我真的需要尽可能多的正 8 位数字。为什么我只指定一个正范围 (1, 255) 时 nextInt() 返回负值?
byte aa = 1;
do {
aa = (byte) ThreadLocalRandom.current().nextInt(1, 128);
} while (aa > 0);
System.out.println(aa);
【问题讨论】:
-
你能给我们展示一个简单的程序来测试这个吗?
-
@LouisWasserman 完成