激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 關于Java大整數運算之BigInteger類

關于Java大整數運算之BigInteger類

2023-05-09 01:02未知服務器之家 Java教程

目錄 一、BigInteger類簡單介紹 二、BigInteger構造方式 (1)構造方式 (2)輸入方式 三、BigInteger常見的成員方法 (1)方法介紹 (2)方法使用演示 1.加減乘除余 2.比較 3.絕對值和冪 4.轉換成對應進制字符串 四、BigInteger不常見的成員

目錄
  • 一、BigInteger類簡單介紹
  • 二、BigInteger構造方式
    • (1)構造方式
    • (2)輸入方式
  • 三、BigInteger常見的成員方法
    • (1)方法介紹
    • (2)方法使用演示
      • 1.加減乘除余
      • 2.比較
      • 3.絕對值和冪
      • 4.轉換成對應進制字符串
  • 四、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 處理多個 case
    	            BigInteger []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));//余	
    	}
    }

    看結果對于超大數字,也是完美計算結果的。

    關于Java大整數運算之BigInteger類

    a>b返回結果為1。

    關于Java大整數運算之BigInteger類

    關于Java大整數運算之BigInteger類

    關于Java大整數運算之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 原文地址:https://blog.csdn.net/m0_63372226/article/details/129967348

    延伸 · 閱讀

    精彩推薦
    主站蜘蛛池模板: 耽美肉文np | 亚洲成人福利在线 | 成人国产精品一区二区毛片在线 | 黄色片免费在线 | 久久精品久久精品国产大片 | 91丝袜| 亚洲国产精品久久久久制服红楼梦 | 国产精品视频在线观看免费 | 欧美一区二区三区不卡免费观看 | 69av导航| 黄片一级毛片 | 一边吃奶一边摸下娇喘 | 亚洲成人福利在线观看 | 91情侣在线偷精品国产 | 久久99久久98精品免观看软件 | 毛片免费视频播放 | 久久精品视频1 | 国内精品久久久久久影视8 嫩草影院在线观看网站成人 | 亚洲视频综合网 | 免费观看的毛片手机视频 | 国产午夜电影在线观看 | 女人久久久www免费人成看片 | 精品一区二区三区在线观看视频 | a视频网站| 99久久电影 | 黄色网址在线播放 | 国产精品久久久久久久久久了 | 激情毛片| 56av国产精品久久久久久久 | 激情小说另类 | 日本一区二区不卡在线观看 | 国产精品1区,2区,3区 | 国产精品免费观在线 | 国产精品久久久乱弄 | gogo全球大胆高清人露出91 | 超碰一区 | 泰剧19禁啪啪无遮挡大尺度 | 海外中文字幕在线观看 | 黄色免费网站在线观看 | av免费不卡国产观看 | 久久久资源网 |