CodeGym /Java-blogg /Tilfeldig /Java BigInteger Class
John Squirrels
Nivå
San Francisco

Java BigInteger Class

Publisert i gruppen

Hva er en BigInteger Class?

Det er noen primitive datatyper i Java som brukes, for eksempel int eller long, for å utføre heltallsoperasjoner. Noen ganger må vi imidlertid lagre store tall utenfor omfanget av slike primitive datatyper. BigInteger Class brukes til matematiske beregninger for svært store tall. Den gir alle metoder fra java.lang.Math -pakken og analoger til alle Javas primitive heltallsoperatorer. Stort heltallKlasse dekker operasjoner for modulær aritmetikk, bitmanipulering, GCD-beregning og noen få andre operasjoner. Store heltall er representert i to-komplement-notasjon. Det er ingen teoretisk grense for hvor stort antall som kan lagres fordi minnet er tildelt dynamisk. Imidlertid er praktisk talt minnet begrenset, og vi kan lagre et heltall som har antall biter mindre enn eller lik Integer.MAX_VALUE . Dette gir en tilstrekkelig stor øvre grense til å lagre praktisk talt alle store tall.

Hvordan implementeres BigInteger-klassen?


import java.math.BigInteger;
For å implementere BigInteger- klassen i koden din, må du importere java.math.BigInteger- pakken.

BigInteger Class Declaration

BigInteger - klassen i Java er deklarert på følgende måte i java.math -pakken:

public class BigInteger
   extends Number
      implements Comparable<BigInteger>
BigInteger - klassen utvider Number- klassen og implementerer et Comparable -grensesnitt. Det er deklarert og definert i java.math -pakken.

Klasse konstruktører

Javas BigInteger Class har mange overbelastede konstruktører. Du kan prøve å kjøre hver i editoren for å se hvordan de fungerer.
Sr# Konstruktør Beskrivelse
1 BigInteger(byte[] val) Oversetter en byte-array til et BigInteger .
2 Stort heltall(int signum, byte[] størrelse) Oversetter tegnstørrelsesrepresentasjon til et stort heltall .
3 BigInteger(int bitLength, int sikkerhet, tilfeldig rnd) Konstruerer et tilfeldig generert positivt stort heltall av den angitte lengden.
4 Stort heltall (strengverdi) Oversetter desimalstrengrepresentasjon til et stort heltall .
5 BigInteger(strengverdi, int radix) Konverterer strengrepresentasjonen i den angitte radiksen til et stort heltall .

Klassemetoder

Javas BigInteger- klasse har mange metoder, hvorav noen er beskrevet nedenfor. I tabellen representerer 'dette' BigInteger som kaller metoden og ' val ' er argumentet som sendes til metoden.
abs() Den returnerer den absolutte verdien av " dette " BigInteger .
Legg til() Den returnerer et stort heltall ved å beregne ' this + val '.
trekke fra() Den returnerer et stort heltall ved å beregne " dette - verdi ".
dele opp() Den returnerer et stort heltall ved å beregne ' dette / val '.
multiplisere() Den returnerer et stort heltall ved å beregne ' denne * val '.
verdien av() Den returnerer en BigInteger- verdi på gitt long .
er lik() Den sammenligner likhet mellom ' dette ' BigInteger og et gitt objekt.
pow() Den returnerer et stort heltall ved å beregne ' denne eksponent '.
min() Den returnerer minimum mellom ' dette ' BigInteger og den gitte verdien.
maks() Den returnerer maksimum mellom ' dette ' BigInteger og den gitte verdien.
mod() Den returnerer en verdi for ' denne mod m '.
gcd() Den returnerer et stort heltall som er den største felles divisoren mellom den absolutte verdien av " dette " og " bestått verdi ".
bitCount() Den returnerer antall biter i to-komplement-representasjonen av " dette " BigInteger .
bitLength() Den returnerer antall biter, unntatt fortegnsbiten, i den minimale to-komplement-representasjonen av " dette " BigInteger .
og() Den returnerer et stort heltall ved å beregne " dette og val ".
eller() Den returnerer et stort heltall ved å beregne ' denne | val '.
ikke() Den returnerer et stort heltall ved å beregne ' ~dette'.
og ikke() Den returnerer et stort heltall ved å beregne ' dette & ~val '.
intValue() Den konverterer BigInteger til en int .
floatValue() Den konverterer BigInteger til flytende .
longValue() Den konverterer BigInteger til long .
doubleValue() Den konverterer BigInteger til dobbel .
toString() Den returnerer desimalstrengrepresentasjonen av BigInteger .

Eksempel 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));
    }
}

Produksjon

155112100433330985984000000

Forklaring

I utdraget ovenfor beregnes faktoren til et stort tall ved å bruke BigInteger Class ved å importere java.math.BigInteger -pakken. Vi har laget en calculateFactorial metode. Denne metoden oppretter et BigInteger og beregner deretter faktorialet ved å bruke multiplikasjonsmetoden f.multiply(BigInteger.valueOf(i)) .

Eksempel 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);
    }
}

Produksjon

60 - 20 = 40 60 + 20 = 80 60 * 20 = 1200 60 / 20 = 3 min verdi: 20 maks verdi: 60

Forklaring

I utdraget ovenfor har vi laget to BigInteger -er ved å bruke BigInteger(String val) -konstruktøren. Vi brukte forskjellige metoder på BigInteger s big1 og big2 med verdiene henholdsvis 20 og 60. Vi brukte følgende metoder:
  1. big2.subtract(big1) for å trekke 20 fra 60.
  2. big1.add(big2) for å legge til 20 og 60.
  3. big1.multiply(big2) for å multiplisere 20 og 60.
  4. big2.divide(big1) for å dele 60 på 20.
  5. big1.min(big2) for å få den minste av de to verdiene.
  6. big1.max(big2) for å få den største av de to verdiene.
Det er viktig å merke seg at java.math.BigInteger er importert øverst i koden.

Konklusjon

Nå bør du være kjent med BigInteger Class i Java. Du bør kunne bruke BigInteger s i koden din ved å bruke forskjellige typer konstruktører. Du bør også kunne utføre forskjellige aritmetiske og logiske operasjoner på dem ved å bruke BigInteger Class-metoder. Som en utfordring kan du prøve å kalle forskjellige metoder med forskjellige verdier av BigInteger s. Det vil ytterligere styrke din forståelse av BigInteger s i Java. For å være mer trygg på læringen din, prøv å øve den om og om igjen. Nøkkelen til god koding er øvelse. Lykke til og god koding!
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION