Java - Random 伪随机数

java.util.Random

  1. java.util.Random 中的随机实现算法是伪随机,即有规则的随机,它会在给定的种子(Seed)区间随机生成数字
  2. 种子相同的 Random 对象,相同次数产生的数字是完全相同
  3. Random 中生成的随机数字都是均匀分布的,区间内部的数字生成的概率均等

实际测试

来看一段代码

Java 异常处理 InvocationTargetException

InvocationTargetException 异常由 Method.invoke(obj, args…) 方法抛出。当被调用的方法的内部抛出了异常而没有被捕获时,将由此异常接收

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package me.redneno.test.reflect;

public class Reflect {
public void run(int i) throws ZeroException {
A b = new A();
a.run(i);
}
}

class A {
public void run(int i) throws ZeroException {
if (i < 0) {
throw new ZeroException("Parameter must be greater than zero!");
}
System.out.println("Param: " + i);
}
}

class ZeroException extends Exception {
private static final long serialVersionUID = 1L;

private String detailMessage;

public ZeroException(String detailMessage) {
this.detailMessage = detailMessage;
}

public String getMessage() {
return detailMessage;
}
}

Java 中各进制间的转换

实际上,不管是常用的10进制转2、8、16进制,还是10进制转R进制、R进制转10进制的方法,都被封装在 Integer 对象中

10 进制转 R 进制

R: 进制
N: 10进制数

目标进制 方法 返回值
2 进制 Integer.toBinaryString(N:int) 字符串
8 进制 Integer.toOctalString(N:int) 字符串
16 进制 Integer.toHexString(N:int) 字符串
R 进制 Integer.toString(N:int, R:int) 字符串

R 进制转 10 进制

R: 进制
N: R 进制数字符串

1
Integer.parseInt(N:String, R:int)

附:Demo

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
public class BinaryConversionTest {
public static void main(String[] args) {
System.out.println("Just Monika");
int dec_num = 18;
System.out.println(Integer.toBinaryString(dec_num));
System.out.println(Integer.toOctalString(dec_num));
System.out.println(Integer.toHexString(dec_num));
System.out.println(Integer.toString(dec_num, 3));

String bin_num = "10010";
System.out.println(Integer.parseInt(bin_num, 2));
}
}

Output

1
2
3
4
5
6
Just Monika
10010
22
12
200
18

CRC16 原理及 Java 实现

校验方式详解

校验方式 多项式 初始值 前/后 异或值
CRC16_CCITT x16+x12+x5+1(0x1021) 0x0000 低/高 0x0000
CRC16_CCITT_FALSE x16+x12+x5+1(0x1021) 0xFFFF 高/低 0x0000
CRC16_XMODEM x16+x12+x5+1(0x1021) 0x0000 高/低 0x0000
CRC16_X25 x16+x12+x5+1(0x1021) 0xFFFF 低/高 0xFFFF
CRC16_MODBUS x16+x15+x2+1(0x8005) 0xFFFF 低/高 0x0000
CRC16_IBM x16+x15+x2+1(0x8005) 0x0000 低/高 0x0000
CRC16_MAXIM x16+x15+x2+1(0x8005) 0x0000 低/高 0xFFFF
CRC16_USB x16+x15+x2+1(0x8005) 0xFFFF 低/高 0xFFFF
CRC16_DNP x16+x13+x12+x11+x10+
x8+x6+x5+x2+1(0x3D65)
0x0000 低/高 0xFFFF
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×