首页 > 编程知识 正文

integer的默认值是,bigdecimal最大范围

时间:2023-05-03 17:22:42 阅读:50828 作者:4627

对于Java,有四种常见整数类型的数据类型:字节、短整型、整型和长整型,分别占1字节、2字节、4字节和8字节。 也就是说,用kwddr表示的整数范围是2的64次方。 如果想表示更大的数字,就会出现问题。 为了解决这个问题,有了BigInteger类。

BigInteger类具有以下常见构造函数:

publicbiginteger (字符串val )传递字符串,默认使用十进制publicbiginteger (字符串val,int radix )。 字符串和数字的进制数)例如,二进制数为2,八进制数为8、10等)当然

构造函数的示例代码如下所示。

publicclassbigintegertest { publicstaticvoidmain (字符串[ ] args ) {字符串str=' 121 '; system.out.println (的十进制值为' newbiginteger(str ) )。 system.out.println (的八进制值为' newbiginteger(str,8 ) ); }执行结果如下图所示。

重要的是,字符串中的所有字符都必须是数字,并且必须在指定的进制范围内。 否则,会抛出异常。

接下来,我们将简要介绍BigInteger的常见方法。

常规静态方法publicstaticbigintegervalueof (long val ) :此方法将long类型的数字转换为biginteger对象publicstaticbigintegerprobableprime ) 以下是相关的代码示例。

publicclassbigintegertest { publicstaticvoidmain (string [ ] args ) bigintegerb=big integer.value of (12 ); system.out.println('b的值为' b ); for(intI=0; i 5; I ) (({ System.out.println ) )第一次获取的素数为(BigInteger.probablePrime(5) 5,new Random () ) ) ) ) ) )。 }}执行结果如下图所示。

算术运算publicbigintegeradd (bigintegerval )返回添加到另一个biginteger对象和publicbigintegersubtract (bigintegerval )。 publicbigintegerdivide (bigintegerval ) :返回与另一个biginteger对象相除的差值的publicbigintegerremainder 求出返回值和另一个biginteger对象的publicbigintegermod (bigintegerm ) :返回求出另一个biginteger对象和模的值。 publicbiginteger [ ] divideandremainder (bigintegerval ) :返回具有整除值和触摸的biginteger数组对象。 另外,求模和求馀根据情况是一样的。 求馀指是数学概念,求模指是计算机概念。 要求幅值,除数不能为负数,求幅值得到的值不能为负数。 求馀没有这个限制。

以下是相关的代码示例。

publicclassbigintegertest { publicstaticvoidmain (字符串[ ] args ) bigintegerb1=big integer.value of (12 ); bigintegerb2=big integer.value of (5; //system.out.println(B1和b2之和为) B1.add (B2 ) ); 减少//system.out.println () B1和b2之间的差值为() B1.subtract (B2 );//乘坐//system.out.println () B1和b2的乘积为(B1.multiply ) b2 ) ); System.out除外

.println("b1和b2的商为:" + b1.divide(b2)); // 求余 System.out.println("b1和b2求余为:" + b1.remainder(b2)); // 求商和余数 System.out.println("b1和b2的商和余数为:" + Arrays.toString(b1.divideAndRemainder(b2))); // 求模和求余数的区别 BigInteger b3 = BigInteger.valueOf(-12); System.out.println("b3和b2的求余为:" + b3.remainder(b2)); System.out.println("b3和b2的求模为:" + b3.mod(b2)); }}

执行结果如下图所示:

位运算 public BigInteger and(BigInteger val):和另一个对象进行且运算 public BigInteger or(BigInteger val) :和另一个对象进行或运算 public BigInteger not() :进行取反运算 public BigInteger andNot(BigInteger val):先对传入的对象取反后再进行且运算。 public BigInteger shiftLeft(int n):向左移动n位(二进制表示的时候) public BigInteger shiftRight(int n):向右移动n位(二进制表示的时候)。

相关示例代码如下所示:

public class BigIntegerTest { public static void main(String[] args) { BigInteger b1 = BigInteger.valueOf(4); BigInteger b2 = BigInteger.valueOf(5); // 且运算 System.out.println("4 & 5结果为:" + (4 & 5)); System.out.println("b1和b2且的结果为:" + b1.and(b2)); // 或运算 System.out.println("4 | 5结果为:" + (4 | 5)); System.out.println("b1和b2或的结果为:" + b1.or(b2)); // 非运算 System.out.println("~4结果为:" + (~4)); System.out.println("b1非运算的结果为:" + b1.not()); // 且非运算 System.out.println("4 & ~5结果为:" + (4 & ~5)); System.out.println("b1和非b2且的结果为:" + b1.andNot(b2)); // 左移运算 System.out.println("4左移两位结果为:" + (4 << 2)); System.out.println("b1左移两位结果为:" + b1.shiftLeft(2)); // 右移运算 System.out.println("4右移两位结果为:" + (4 >> 2)); System.out.println("b1右移两位结果为:" + b1.shiftRight(2)); }}

执行结果如下图所示:

取最大或最小值 public BigInteger max(BigInteger val):判断该对象是否比另一个对象大。 public BigInteger min(BigInteger val) :判断该对象是否比另一个对象小

 

相关示例代码如下所示:

public class BigIntegerTest { public static void main(String[] args) { BigInteger b1 = BigInteger.valueOf(4); BigInteger b2 = BigInteger.valueOf(5); System.out.println("b1和b2中最大的值为::" + b1.max(b2)); System.out.println("b1和b2中最小的值为::" + b1.min(b2)); }}

执行结果如下图所示:

转换成指定的整数类型 public byte byteValue():转换为byte类型 public short shortValue():转换为short类型 public int intValue():转换为int类型 public long longValue() :转换为long类型

相关示例代码如下所示:

public class BigIntegerTest { public static void main(String[] args) { BigInteger b1 = BigInteger.valueOf(4); System.out.println("BigInteger转byte:" + b1.byteValue()); System.out.println("BigInteger转short:" + b1.shortValue()); System.out.println("BigInteger转int:" + b1.intValue()); System.out.println("BigInteger转long:" + b1.longValue()); }}

执行结果如下图所示:

其他 public int bitCount():返回该对象转换为二进制数之后,1的个数。 public int bitLength():返回该对象转换为二进数之后的所占位数。 public BigInteger gcd(BigInteger val):求和另一个BigInteger对象的最大公约数 public BigInteger abs() :返回该对象的绝对值 public BigInteger pow(int exponent) :求该对象的幂运算 public int signum():判断该对象的正负,1表示正,-1表示负。 public BigInteger sqrt():求该对象的平方根。 public BigInteger negate():将该值取反。若本身为正数,获取其对应的负数。若本身为负数,则获取其对应的正数。 public BigInteger nextProbablePrime(): 获取紧邻该整数的一个素数。 public int compareTo(BigInteger val)

相关示例代码如下所示:

public class BigIntegerTest { public static void main(String[] args) { BigInteger b1 = BigInteger.valueOf(12); BigInteger b2 = BigInteger.valueOf(15); // 求转换为二进制后1的个数 System.out.println("b1(12)转换为二进制后1的个数为:" + b1.bitCount()); // 求转换为二进制后所占位数 System.out.println("b1(12)转换为二进制后所占位数为:" + b1.bitLength()); // 求两个数的最大公约数 System.out.println("b1(12)和b2(15)的最大公约数为:" + b1.gcd(b2)); // 求一个数的绝对值 System.out.println("-4的绝对值为:" + BigInteger.valueOf(-4).abs()); // 求一个数的幂 System.out.println("b1(12)的2次方的值为:" + b1.pow(2)); // 求一个数的符号(1表示正,-1表示负) System.out.println("3的表示正负的符号为:" + BigInteger.valueOf(3).signum()); System.out.println("-3的表示正负的符号为:" + BigInteger.valueOf(-3).signum()); // 求一个数的平方根 System.out.println("4的平方根为:" + BigInteger.valueOf(4).sqrt()); // 对该数取反(正变负,负变正) System.out.println("4取反后结果为:" + BigInteger.valueOf(4).negate()); // 取该数之后理其最近的素数 System.out.println("4后面距离4最近的素数为:" + BigInteger.valueOf(4).nextProbablePrime()); // 比较两个数的大小(1表示大,-1表示小) System.out.println("b1(12)是否比b2(15)大?" + b1.compareTo(b2)); }}

执行结果如下图所示:

自此,关于BigInteger的简单使用就已经介绍完毕了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。