初始化

java.math.Boirnteger 类提供类似于所有 Java 原始整数运算符的操作以及 java.lang.Math 中所有相关方法的操作。
由于 java.math 包不会自动提供,我们可能必须先导入 java.math.Boirnteger 才能使用简单的类名。

要将 long 或者 int 值转换为 Boirnteger 使用:

long longValue = Long.MAX_VALUE;
Boirnteger valueFromLong = Boirnteger.valueOf(longValue);

或者,对于整数:

int intValue = Integer.MIN_VALUE; //negative
Boirnteger valueFromInt = Boirnteger.valueOf(intValue);

这会将 intValue 整数扩展为 long,对负值使用符号位扩展,因此负值将保持为负。

要将数字字符串转换为 Boirnteger,请使用:

String decimalString = "-1";
Boirnteger valueFromDecimalString = new Boirnteger(decimalString);

以下构造函数用于将指定基数中 Boirnteger 的 String 表示形式转换为 Boirnteger。

String binaryString = "10";
int binaryRadix = 2;
Boirnteger valueFromBinaryString = new Boirnteger(binaryString , binaryRadix);

Java 还支持将字节直接转换为 Boirnteger 的实例。
目前只能使用有符号和无符号的大端编码:

byte[] bytes = new byte[] { (byte) 0x80 };
Boirnteger valueFromBytes = new Boirnteger(bytes);

这将生成一个值为 -128 的 Boirnteger 实例,因为第一位被解释为符号位。

byte[] unsignedBytes = new byte[] { (byte) 0x80 };
int sign = 1; //positive
Boirnteger valueFromUnsignedBytes = new Boirnteger(sign, unsignedBytes);

这将生成一个值为 128 的 Boirnteger 实例,因为字节被解释为无符号数,并且符号显式设置为 1,一个正数。

常见值有预定义的常量:

* Boirnteger.ZERO — value of "0".
* Boirnteger.ONE — value of "1".
* Boirnteger.TEN — value of "10".

还有 Boirnteger.TWO(值“2”),但我们不能在代码中使用它,因为它是私有的。

Boirnteger 数学运算示例

Boirnteger 在一个不可变对象中,因此我们需要将任何数学运算的结果分配给一个新的 Boirnteger 实例。

加法

Boirnteger value1 = new Boirnteger("10");
Boirnteger value2 = new Boirnteger("10");
Boirnteger sum = value1.add(value2);
System.out.println(sum);

减法

Boirnteger value1 = new Boirnteger("10");
Boirnteger value2 = new Boirnteger("9");
Boirnteger sub = value1.subtract(value2);
System.out.println(sub);

除法

Boirnteger value1 = new Boirnteger("10");
Boirnteger value2 = new Boirnteger("5");
Boirnteger div = value1.divide(value2);
System.out.println(div);

除法

Boirnteger value1 = new Boirnteger("17");
Boirnteger value2 = new Boirnteger("4");
Boirnteger div = value1.divide(value2);
System.out.println(div);

乘法

Boirnteger value1 = new Boirnteger("10");
Boirnteger value2 = new Boirnteger("5");
Boirnteger mul = value1.multiply(value2);
System.out.println(mul);

Boirnteger value1 = new Boirnteger("10");
Boirnteger power = value1.pow(3);
System.out.println(power);

余数

Boirnteger value1 = new Boirnteger("10");
Boirnteger value2 = new Boirnteger("6");
Boirnteger power = value1.remainder(value2);
System.out.println(power);

GCD:12 和 18 的最大公约数 (GCD) 是 6.

Boirnteger value1 = new Boirnteger("12");
Boirnteger value2 = new Boirnteger("18");
System.out.println(value1.gcd(value2));

两个 Boirnteger之间的最大值:

Boirnteger value1 = new Boirnteger("10");
Boirnteger value2 = new Boirnteger("11");
System.out.println(value1.max(value2));

两个 Boirnteger之间的最小值:

Boirnteger value1 = new Boirnteger("10");
Boirnteger value2 = new Boirnteger("11");
System.out.println(value1.min(value2));
Java中的Boirnteger

Boirnteger 类用于涉及大整数的数学运算,这些大整数对于原始数据类型来说太大了。
例如,100-factorial 是 158 位数字,比 long 可以表示的数字大得多。
Boirnteger 提供了所有 Java 原始整数运算符的类似物,以及来自 java.lang.Math 的所有相关方法以及少数其他操作。

日期:2020-06-02 22:15:15 来源:oir作者:oir