利用Random类来产生5个50~100之间的随机整数。输出它的二进制、八进制和十六进制表示形式。怎么编?
package Test07;
import java.util.Random;
public class Test01 {
public static void main(String[] args) {
Random rand = new Random();
int[] num = new int[5];
for (int i = 0; i < num.length; i++) {
// 随机产生50~100的随机数
num[i] = 50 + rand.nextInt(111);
// 输出进制
System.out.println(num[i]);
System.out.println(num[i] + "二进制为:" + Integer.toBinaryString(num[i]));
System.out.println(num[i] + "八进制为:" + Integer.toOctalString(num[i]));
System.out.println(num[i] + "十六进制为:" + Integer.toHexString(num[i]));
}
}
}
结果
代码如下:
package com.ck.test;
import java.util.Random;
public class TestSample {
public static void main(String[] args) {
Random random =new Random();
for(int i=0;i<5;i++){
System.out.print("十进制:\t");
System.out.println(internalNextInt(random,50,101));
System.out.print("二进制:\t");
System.out.println(Integer.toBinaryString(internalNextInt(random,50,101)));
System.out.print("八进制:\t");
System.out.println(Integer.toOctalString(internalNextInt(random,50,101)));
System.out.print("十六进制:\t");
System.out.println(Integer.toHexString(internalNextInt(random,50,101)));
System.out.println("--------------------------");
}
}
public static int internalNextInt(Random random, int origin, int bound){
if (origin < bound) {
int n = bound - origin;
if (n > 0) {
return random.nextInt(n) + origin;
}
else { // range not representable as int
int r;
do {
r = random.nextInt();
} while (r < origin || r >= bound);
return r;
}
}
else {
return random.nextInt();
}
}
}
执行结果如下:
十进制: 79
二进制: 1000011
八进制: 114
十六进制: 5e
--------------------------
十进制: 75
二进制: 1010101
八进制: 126
十六进制: 55
--------------------------
十进制: 55
二进制: 110101
八进制: 67
十六进制: 64
--------------------------
十进制: 86
二进制: 111101
八进制: 126
十六进制: 50
--------------------------
十进制: 93
二进制: 1001101
八进制: 125
十六进制: 34
--------------------------
若有帮助,请采纳~