当前位置: 首页 > news >正文

重庆建设银行网站首页cpa广告联盟

重庆建设银行网站首页,cpa广告联盟,京推推cms网站建设,小红书推广平台目录 一、BigInteger类简单介绍 二、BigInteger构造方式 (1)构造方式 (2)输入方式 三、BigInteger常见的成员方法 (1)方法介绍 (2)方法使用演示 1.加减乘除余 2.比较 3.绝…

目录

一、BigInteger类简单介绍

二、BigInteger构造方式

(1)构造方式

(2)输入方式

三、BigInteger常见的成员方法

(1)方法介绍

(2)方法使用演示

1.加减乘除余

2.比较

3.绝对值和幂

4.转换成对应进制字符串

 四、BigInteger不常见的成员方法


        起因是做了一道牛客oj题,链接指路☞三角形__牛客网,明明是一道超级简单的判断两边之和是否大于第三边,可是哪怕把数据类型改成long,仍然不能通过∑(っ°Д°;)っ。这时候就需要我们超级好用的大数字运算BigInteger啦。本文详细整理了BigInteger类的常见用法!欢迎享用(✪ω✪)~~~


一、BigInteger类简单介绍

        我们都知道Integer的存储范围是-2^31~2^31-1(-2147483648~2147483647),当我们要存储比Integer更大的数字时,java中就为我们提供了一个BigInteger类,方便我们去处理更大的数。

        BigInteger 类支持任意精度的整数,也就是说在运算中 BigInteger 类可以准确地表示任何大小的整数值。首先除了基本的操作加、减、乘、除,在该类中还封装了其他很有用的操作,接下来将一一介绍。

二、BigInteger构造方式

(1)构造方式

        很显然,BigInteger是一个封装类,就跟String类是一样的。使用时需要导入 import java.math.BigInteger;使用 BigInteger 类,首先要创建一个 BigInteger 对象。BigInteger是一个有参构造,需要传入一个参数,最常见的就是给定一个字符串,使用构造方法public BigInteger(String val)构造一个十进制的BigInteger对象。

小贴士:该构造方法可以发生NumberFormatException异常,当字符串参数val中如果含有非数字字符就会发生该异常。

import java.math.BigInteger;/** BigInteger演示*/
public class Test {public static void main(String[] args) {BigInteger bigInteger=new BigInteger("1123");}
}

 (2)输入方式

普通输入:

Scanner sc=new Scanner(System.in);
BigInteger a=sc.BigIntegerNext();

循环输入 :

 while (sc.hasNextBigInteger()) { // 注意 while 处理多个 case}

        除了定义实例,我们也可以像使用String类那样使用BigInteger类,给大家一个题目感受一下,该题就是本文开头所提及的三角形求解。

import java.math.BigInteger;
import java.util.Arrays;
import java.util.Scanner;
/** 三角形*/
public class Triangle {public static void main(String[] args) {Scanner sc=new Scanner(System.in);while (sc.hasNextBigInteger()) { // 注意 while 处理多个 caseBigInteger []triangle=new BigInteger[3];for(int i=0;i<3;i++) {triangle[i]=sc.nextBigInteger();}Arrays.sort(triangle);if(triangle[0].add(triangle[1]).compareTo(triangle[2])>0) {System.out.println("Yes");}else {System.out.println("No");}}}
}

三、BigInteger常见的成员方法

(1)方法介绍

方法名

含义

public BigInteger add(BigInteger val)

返回当前大整数对象与参数指定的大整数对象的和。

public BigInteger subtract(BigInteger val)

返回当前大整数对象与参数指定的大整数对象的差。

public BigInteger multiply(BigInteger val)

返回当前大整数对象与参数指定的大整数对象的积。

public BigInteger divide(BigInteger val)

返回当前大整数对象与参数指定的大整数对象的商。

public BigInteger remainder(BigInteger val)

返回当前大整数对象与参数指定的大整数对象的余。

public int compareTo(BigInteger val)

返回当前大整数对象与参数指定的大整数的比较结果,

返回值是1、-1或0,分别表示当前

大整数对象大于、小于或等于参数指定的大整数。

public BigInteger abs()

返回当前大整数对象的绝对值。

public BigInteger pow(int a)

返回当前大整数对象的a次幂。

public String toString()

返回当前大整数对象十进制的字符串表示。

public String toString(int p)

返回当前大数对象p进制的字符串表示。

(2)方法使用演示

1.加减乘除余

import java.math.BigInteger;
import java.util.Scanner;/** BigInteger演示*/
public class Test {public static void main(String[] args) {Scanner sc=new Scanner(System.in);BigInteger a=sc.nextBigInteger();BigInteger b=sc.nextBigInteger();System.out.println(a.add(b));//加System.out.println(a.subtract(b));//减System.out.println(a.multiply(b));//乘System.out.println(a.divide(b));//除System.out.println(a.remainder(b));//余	}
}

 看结果对于超大数字,也是完美计算结果的。

 2.比较

import java.math.BigInteger;
import java.util.Scanner;/** BigInteger演示*/
public class Test {public static void main(String[] args) {Scanner sc=new Scanner(System.in);BigInteger a=sc.nextBigInteger();BigInteger b=sc.nextBigInteger();System.out.println(a.compareTo(b));}
}

 a>b返回结果为1。

 3.绝对值和幂

import java.math.BigInteger;
import java.util.Scanner;/** BigInteger演示*/
public class Test {public static void main(String[] args) {Scanner sc=new Scanner(System.in);BigInteger a=sc.nextBigInteger();BigInteger b=sc.nextBigInteger();System.out.println(a.abs());System.out.println(b.pow(100));}
}

 4.转换成对应进制字符串

import java.math.BigInteger;
import java.util.Scanner;/** BigInteger演示*/
public class Test {public static void main(String[] args) {Scanner sc=new Scanner(System.in);BigInteger a=sc.nextBigInteger();BigInteger b=sc.nextBigInteger();String strTen=a.toString();String strTwo=b.toString(2);System.out.println(strTen);System.out.println(strTwo);}
}

 四、BigInteger不常见的成员方法

        上面是我们经常会使用的一些常见方法,当然BigInteger中还有许多好用但不常见的方法,现整理分享给大家!

下面的方法都是指二进制

方法名含义
public BigInteger shiftLeft​(int n)左移一个比特位,*2
public BigInteger shiftRight​(int n)右移一个比特位,/2
public BigInteger and​(BigInteger val)&和
public BigInteger or​(BigInteger val)|或
public BigInteger xor​(BigInteger val)^异或
public BigInteger not()~取反
public BigInteger andNot​(BigInteger val)&~ 先取和再取反
public boolean testBit​(int n)从0开始,第n位如果是1,则返回true,否则位false ,必须是正数
public BigInteger setBit​(int n)将第n 位置1
public BigInteger clearBit​(int n)将第n 位置0
public BigInteger flipBit​(int n)如果第n为原来是1,则置0;如果第n为原来是0,则置1;
public int getLowestSetBit() 寻找到第一个不为零数的 0的个数。如7->0111,则是4
public int bitLength()返回位长,不包含符号位。如7->0111,则是3
public int bitCount()补码表中和符号位不同的个数。如7->0111,则是3

如果觉得有用的话,就点个赞吧~ 

http://www.dinnco.com/news/36945.html

相关文章:

  • 苏州网站建设信息网络百度外链查询工具
  • 做视频怎么去除网站百度网盘搜索引擎入口在哪
  • 精美网站制作公司经典软文案例100例
  • 网站中怎么做下载链接站长之家seo工具
  • 网站建设服务专业搜一搜百度
  • 手机免费建网站软件链爱交易平台
  • 广州市公司网站建设企业seo按天计费系统
  • 网站开发实训内容厦门seo公司到1火星
  • php电商网站开发流程图百度账号人工客服
  • 做网站支持提现支付宝深圳网站建设公司排名
  • 专业做网站建设的营销推广方式有哪些
  • dz网站首页html代码在哪谷歌搜索引擎为什么国内用不了
  • 做网站做哪个重庆seo整站优化方案范文
  • 通州网站建设多少钱国外网站建设
  • 装修公司企业网站开发规划windows优化大师和鲁大师
  • 直销平台北京如何优化搜索引擎
  • 个人网页完整代码中国seo高手排行榜
  • 一套完整的室内设计图白杨seo教程
  • 如何查看网站的浏览量郑州网站建设最便宜
  • 做企业网站哪家强网站流量排行
  • 东莞商城网站建设哪家便宜襄阳seo培训
  • pc网站做app百度一键优化
  • 舆情监测关键词sem与seo的区别
  • 做别人的网站诈骗视频下载nba最新消息新闻
  • 联系我们网站模板东莞网站推广技巧
  • 写入网站文件美国seo薪酬
  • 西安网站制作公司排网店推广营销方案
  • 荔湾区网站设计有哪些平台可以免费发广告
  • 北京做网络工程公司的网站网络营销和电子商务的区别
  • 上海有什么大企业seo整站优化吧