1、模拟车载终端产生报警位:
/**
* 随机产生0-10种报警到报警数字
*
* for循环10次,表示每辆车最多有10种报警位
* 每次循环取随机数0-100范围内,判断是否
* 刚好获取随机数是50,则产生一个报警,并
* 随机32位种报警位指定到随机产生的报警,
* 1 << k 表示把1往左边移动到随机位
* alarm | (1 << k) 使用!(或),两个位只要有一个为1,那么结果就是1,否则就为0,
* 使用了或,那么就实现多种报警位赋值给一个数值了
*
* @return
*/
private int createAlarm() {
int alarm = 0;
for (int i = 0; i < 10; i++) {
int n = r.nextInt(100);
if (n == 50) {
int k = r.nextInt(32);
alarm |= (1 << k;
}
}
return alarm;
}
nextInt(int n) 方法用于获取一个伪随机,在0(包括)和指定值(不包括),从此随机数生成器的序列中取出均匀分布的int值。