CodeGym /Java блог /Случаен /Java BigInteger клас
John Squirrels
Ниво
San Francisco

Java BigInteger клас

Публикувано в групата

Какво е BigInteger клас?

В Java има някои примитивни типове данни , които се използват, като int or long, за извършване на операции с цели числа. Понякога обаче трябва да съхраняваме големи числа извън обхвата на такива примитивни типове данни. Класът BigInteger се използва за математически изчисления за много големи числа. Той предоставя всички методи от пакета java.lang.Math и аналози на всички примитивни целочислени оператори на Java. Голямо цяло числоКласът обхваща операции за модулна аритметика, битова манипулация, GCD изчисление и няколко други операции. Големите цели числа са представени в нотация с допълнение от две. Няма теоретично ограничение за това колко голямо число може да бъде съхранено, тъй като паметта се разпределя динамично. На практика обаче паметта е ограничена и можем да съхраним цяло число, което има брой битове по-малък or equals на Integer.MAX_VALUE . Това осигурява достатъчно голяма горна граница за съхраняване на почти всички големи числа.

Как се внедрява класът BigInteger?


import java.math.BigInteger;
За да внедрите класа BigInteger във вашия code, трябва да импортирате пакет java.math.BigInteger .

Декларация на клас BigInteger

Класът BigInteger в Java е деклариран по следния начин в пакета java.math :

public class BigInteger
   extends Number
      implements Comparable<BigInteger>
Класът BigInteger разширява класа Number и имплементира Comparable интерфейс. Той е деклариран и дефиниран в пакета java.math .

Конструктори на класове

Класът BigInteger на Java има много претоварени конструктори. Можете да опитате да стартирате всеки в редактора, за да видите How работят.
Sr# Конструктор Описание
1 BigInteger(byte[] стойност) Преобразува byteов масив в BigInteger .
2 BigInteger(int signum, byte[] величина) Превежда представянето на знак-величина в BigInteger .
3 BigInteger(int bitLength, int сигурност, Random rnd) Конструира произволно генерирано положително BigInteger с посочената дължина.
4 Голямо цяло число (низ стойност) Преобразува представянето на десетичен низ в BigInteger .
5 BigInteger(String val, int radix) Преобразува представянето на низ в посочения радикс в BigInteger .

Методи на класа

Класът BigInteger на Java има много методи, някои от които са описани по-долу. В tableта 'this' представлява BigInteger , който извиква метода, а ' val ' е аргументът, предаден на метода.
коремни мускули() Връща абсолютната стойност на ' this ' BigInteger .
добави () Той връща Biginteger чрез изчисляване на ' this + val '.
изваждане () Той връща Biginteger чрез изчисляване на ' this - val '.
разделям() Той връща Biginteger чрез изчисляване на ' this / val '.
умножение () Той връща Biginteger чрез изчисляване на ' this * val '.
стойност на() Връща стойност на BigInteger от дадено дълго .
равно на() Той сравнява equalsството между „ товаBigInteger и даден обект.
pow() Той връща Biginteger чрез изчисляване на ' thisexponent '.
мин() Връща минимума между ' this ' BigInteger и дадената стойност.
макс () Връща максимума между ' this ' BigInteger и дадената стойност.
мод() Връща стойност за „ този мод m “.
gcd() Връща голямо цяло число , което е най-големият общ делител между абсолютната стойност на „ това “ и „ предадената стойност “.
bitCount() Връща броя на битовете в представянето с допълнение от две на ' това ' BigInteger .
bitLength() Той връща броя на битовете, с изключение на бита за знака, в минималното представяне с допълнение от две на ' това ' BigInteger .
и() Той връща Biginteger чрез изчисляване на ' this & val '.
or() Той връща Biginteger , като изчислява ' this | val '.
не() Той връща Biginteger чрез изчисляване на „ ~this“.
и не() Той връща Biginteger чрез изчисляване на ' this & ~val '.
intValue() Той преобразува BigInteger в int .
floatValue() Той преобразува BigInteger в float .
longValue() Той преобразува BigInteger в long .
двойна стойност () Той преобразува BigInteger в double .
toString() Връща представянето на десетичен низ на BigInteger .

Пример 1


import java.math.BigInteger;
public class Example1 {
    static BigInteger calculateFactorial(int val) {
        // Initialize result
        BigInteger f = BigInteger.ONE; // Or new BigInteger("1")
        // compute factorial
        for (int i = 2; i <= val; i++) {
            f = f.multiply(BigInteger.valueOf(i));
        }

        return f;
    }

    // Driver method
    public static void main(String[] args) {
        int val = 25;
        System.out.println(calculateFactorial(val));
    }
}

Изход

15511210043330985984000000

Обяснение

В горния фрагмент коефициентът на голямо число се изчислява с помощта на клас BigInteger чрез импортиране на пакет java.math.BigInteger . Създадохме метод CalculatorFactorial . Този метод създава BigInteger и след това изчислява факториела с помощта на метода за умножение f.multiply(BigInteger.valueOf(i)) .

Пример 2


import java.math.BigInteger;
public class Example2 {

    public static void main(String[] args) {
        BigInteger big1 = new BigInteger("20");
        BigInteger big2 = new BigInteger("60");
        BigInteger sub = big2.subtract(big1);
        System.out.println(big2 + " - " + big1 + " = " + sub);
        BigInteger add = big1.add(big2);
        System.out.println(big1 + " + " + big2 + " = " + add);
        BigInteger mul = big1.multiply(big2);
        System.out.println(big1 + " * " + big2 + " = " + mul);
        BigInteger div = big2.divide(big1);
        System.out.println(big2 + " / " + big1 + " = " + div);
        BigInteger min = big1.min(big2);
        System.out.println("min value: " + min);
        BigInteger max = big1.max(big2);
        System.out.println("max value: " + max);
    }
}

Изход

60 - 20 = 40 60 + 20 = 80 60 * 20 = 1200 60 / 20 = 3 minutesи стойност: 20 максимална стойност: 60

Обяснение

Във фрагмента по-горе направихме две BigInteger с помощта на конструктора BigInteger(String val) . Приложихме различни методи към big1 и big2 на BigInteger със стойности съответно 20 и 60. Приложихме следните методи:
  1. big2.subtract(big1) за изваждане на 20 от 60.
  2. big1.add(big2) , за да съберете 20 и 60.
  3. big1.multiply(big2) за умножение на 20 и 60.
  4. big2.divide(big1) за разделяне на 60 на 20.
  5. big1.min(big2) , за да получите по-малката от двете стойности.
  6. big1.max(big2) , за да получите по-голямата от двете стойности.
Важно е да се отбележи, че java.math.BigInteger се импортира в горната част на codeа.

Заключение

Досега трябва да сте запознати с класа BigInteger в Java. Трябва да можете да използвате BigInteger във вашия code, като използвате различни типове конструктори. Трябва също така да можете да извършвате различни аритметични и логически операции върху тях, като използвате методите на BigInteger Class. Като предизвикателство можете да опитате да извикате различни методи с различни стойности на BigInteger . Това допълнително ще засor вашето разбиране за BigInteger в Java. За да сте по-уверени в ученето си, опитайте да го практикувате отново и отново. Ключът към доброто codeиране е практиката. Успех и приятно codeиране!
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION