java中最大的整数用法分析

本文实例讲述了java中最大的整数用法。分享给大家供大家参考,具体如下:

8种基本数据类型中,long类型所能表示的整数范围是最大的,但还是有限的。另外,基本数据类型中的整数还有一个问题,那就是不是每个数都能够正确的取负数。例如,对int型而言,“-2147483648”取负就不能得到正确的结果,对其他整数类型也有这个问题。

为了解决这些问题,Java中专门提供了用来进行不限制大小的整数计算的类——java.math.BigInteger。该类可以对任意大小的整数进行操作,不过在进行计算的时候是通过方法调用进行的,而不是使用算术运算符

demo:

package org.aaa;
import java.math.BigInteger;
public class ssss {
 public static void main(String[] ages){
  BigInteger b1=new BigInteger("11111111111111111111111111");
  BigInteger b2=new BigInteger("22222222222222222222222222");
  System.out.println("加法运算:");
  System.out.println("b1:"+b1);
  System.out.println("b2:"+b2);
  System.out.println("相加结果值");
  System.out.println("相加后的值:"+b1.add(b2));
 }
}

其余函数参造下表


方法签名


功能


public BigInteger add(BigInteger val)


该方法起到使两个数相加的功能,其用自己表示的数加上val表示的数,并将结果返回。


public BigInteger subtract(BigInteger val)


该方法起到使两个数相减的功能,其用自己表示的数减去val表示的数,并将结果返回。


public BigInteger multiply(BigInteger val)


该方法起到使两个数相乘的功能,其将自己表示的数与val表示的数的积返回。


public BigInteger divide(BigInteger val)


该方法起到使两个数相除的功能,其用自己表示的数做被除数,val表示的数做除数,并将商返回。


public BigInteger mod(BigInteger m)


该方法有求余的功能,其用自己表示的数做被除数,val表示的数做除数,并将余数返回。


public int compareTo(BigInteger val)


该方法将此自己与指定的val进行比较。若自己比指定的val大则返回正数,若自己比指定的val小则返回负数,若二者相等则返回0。


public BigInteger negate()


该方法有取相反数的功能,其将自己的相反数返回。


public int signum()


该方法将返回自己的符号,当表示的值为负数时,返回-1;为正数时返回1;为零时返回0。

更多关于java相关内容感兴趣的读者可查看本站专题:《Java数学运算技巧总结》、《Java数据结构与算法教程》、《Java字符与字符串操作技巧总结》、《java日期与时间操作技巧汇总》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • java实现整数转化为中文大写金额的方法

    在日常生活中,我们经常会将阿拉伯数字转化为中文大写的情况:"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾", "佰", "仟", "万", "亿",因此

  • JAVA中IP和整数相互转化的方法

    本文实例讲述了JAVA中IP和整数相互转化的方法.分享给大家供大家参考.具体分析如下: 一.基本知识点 IP --> 整数: 把IP地址转化为字节数组 通过左移位(<<).与(&).或(|)这些操作转为int 整数 --> IP: 将整数值进行右移位操作(>>>),右移24位,再进行与操作符(&)0xFF,得到的数字即为第一段IP. 将整数值进行右移位操作(>>>),右移16位,再进行与操作符(&)0xFF,得到的数字即为

  • java中字符串转整数及MyAtoi方法的实现

    java中字符串转整数及MyAtoi方法的实现 该题虽然和我们正常使用的字符串转整数的API中函数不一致,但是通过增加了很多额外的边界或者异常处理,可以锻炼算法思维的敏锐性和处理边界异常等问题的能力. 思路:字符串题一般考查的都是边界条件.特殊情况的处理.所以遇到此题一定要问清楚各种条件下的输入输出应该是什么样的. 这里已知的特殊情况有: 能够排除首部的空格,从第一个非空字符开始计算 允许数字以正负号(+-)开头 遇到非法字符便停止转换,返回当前已经转换的值,如果开头就是非法字符则返回0 在转换

  • Java将一个正整数分解质因数的代码

    程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 1.如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. 2.如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,重复执行第一步. 3.如果n不能被k整除,则用k+1作为k的值,重复执行第一步. 程序设计: public class exp2{ public exp2(){} public void fengjie(int n){ for(int i=2;i<=

  • 谈谈Java中整数类型(short int long)的存储方式

    在java中的整数类型有四种,分别是 byte  short int long 其中byte只有一个字节 0或1,在此不详细讲解. 其他的三种类型如下: 1. 基本类型:short 二进制位数:16 包装类:java.lang.Short 最小值:Short.MIN_VALUE=-32768 (-2的15此方) 最大值:Short.MAX_VALUE=32767 (2的15次方-1) 2. 基本类型:int 二进制位数:32 包装类:java.lang.Integer 最小值:Integer.M

  • Java求两个正整数的最大公约数和最小公倍数

    题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 程序分析:利用辗除法. 最大公约数: public class CommonDivisor{ public static void main(String args[]) { commonDivisor(24,32); } static int commonDivisor(int M, int N) { if(N<0||M<0) { System.out.println("ERROR!"); return -1; }

  • Java根据正整数的位数并逆序打印出各位数字

    题目:给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. 程序设计: import java.util.Scanner; public class Ex24 { public static void main(String[] args) { Ex24 tn = new Ex24(); Scanner s = new Scanner(System.in); long a = s.nextLong(); if(a < 0 || a > 100000) { System.o

  • java整数(秒数)转换为时分秒格式的示例

    整数(秒数)转换为时分秒格式(xx:xx:xx) 复制代码 代码如下: // a integer to xx:xx:xx    public static String secToTime(int time) {        String timeStr = null;        int hour = 0;        int minute = 0;        int second = 0;        if (time <= 0)            return "00

  • 详解Java判断是否是整数,小数或实数的正则表达式

    经常会遇到这样的情况,需要判断一个字符串是否是一个合法的数,包括整数,小数或者实数. 网上查到很多文章大多是判断这个字符串是否全为数字,比如下面这段来自StringUtils的代码,可以看到,13.2这样的数字实际上会返回false,可是,他的确是一个数字. public static boolean isNumeric(String str) { if (str == null) { return false; } int sz = str.length(); for (int i = 0;

  • Java得到一个整数的绝对值,不使用任何判断和比较语句,包括API

    复制代码 代码如下: /** * Java得到一个整数的绝对值,不使用任何判断和比较语句,包括API. <br> * 1.不得使用任何API,如Math.abs()等.<br> * 2.不得使用判断语句,如if.for.while.switch.?:等.<br> * 3.不得使用比较语句,如:==. <=.>=.!=. <.>等. <br> * * @author JAVA世纪网(java2000.net, laozizhu.com)

  • Java输入三个整数并把他们由小到大输出(x,y,z)

    题目:输入三个整数x,y,z,请把这三个数由小到大输出. 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x> z则将x与z的值进行交换,这样能使x最小. 程序设计: import java.util.*; public class test { public static void main (String[]args){ int i=0; int j=0; int k=0; int x=0; System.out.

随机推荐