思路:可以使用num 高16bit 保存 a 。低16bit 保存b 然后输出 num ,然后再将 a,b 从 num 中解析出来。
方法一
import java.util.Random;
public class TestRandom1{
public static void main(String[] args){
//定义取值区间
final int MIN = 0;
final int MAX = 101;
//创建用于得到随机数的对象
Random random = new Random();
//得到随机数,并得到正整数
int ran1 = (random.nextInt()>>>1)%(MAX-MIN)+MIN;
int ran2 = (random.nextInt()>>>1)%(MAX-MIN)+MIN;
System.out.println("ran1 = " + ran1);
System.out.println("ran2 = " + ran2);
//打印 ran1 和 ran2的二进制形式
System.out.println(Integer.toBinaryString(ran1));
System.out.println(Integer.toBinaryString(ran2));
//定义用于保存 ran1 和 ran2 的变量
int ranNum = 0;
//ran1 保存在低16位
ranNum += ran1;
//ran2 保存在高16位
ranNum += (ran2 << 16);
//打印ranNum 的二进制形式
System.out.println(Integer.toBinaryString(ranNum));
//将ranNum 中的保存的两个数分别打印
System.out.println("低16位表示的数为:" + (ranNum&0xffff));
System.out.println("高16位表示的数为:" + (ranNum>>16));
}
}
方法二
![](https://img.haomeiwen.com/i15200008/ca2dac8b43e72a4f.png)
网友评论