CodeGym /Java Blogu /Rastgele /Java BigInteger Sınıfı
John Squirrels
Seviye
San Francisco

Java BigInteger Sınıfı

grupta yayınlandı

BigInteger Sınıfı nedir?

Java'da int veya long gibi tamsayı işlemlerini gerçekleştirmek için kullanılan bazı ilkel veri türleri vardır . Ancak bazen bu tür ilkel veri türlerinin kapsamı dışında büyük sayıları depolamamız gerekir. BigInteger Sınıfı, çok büyük sayıların matematiksel hesaplamaları için kullanılır. Java.lang.Math paketi ve analoglarından Java'nın tüm ilkel tamsayı operatörlerine kadar tüm yöntemleri sağlar . BüyükTamsayıSınıf, modüler aritmetik, bit manipülasyonu, GCD hesaplaması ve diğer birkaç işlemi kapsar. BigIntegers, ikiye tümleyen gösterimde temsil edilir. Bellek dinamik olarak tahsis edildiğinden, bir sayının ne kadar büyük depolanabileceği konusunda teorik bir sınır yoktur. Bununla birlikte, pratikte bellek sınırlıdır ve bit sayısı Integer.MAX_VALUE'den küçük veya ona eşit olan bir tamsayıyı saklayabiliriz . Bu, hemen hemen tüm büyük sayıları depolamak için yeterince büyük bir üst sınır sağlar.

BigInteger Sınıfı Nasıl Uygulanır?


import java.math.BigInteger;
BigInteger sınıfını kodunuza uygulamak için java.math.BigInteger paketini içe aktarmanız gerekir.

BigInteger Sınıf Bildirimi

Java'daki BigInteger sınıfı , java.math paketinde şu şekilde bildirilir :

public class BigInteger
   extends Number
      implements Comparable<BigInteger>
BigInteger sınıfı , Number sınıfını genişletir ve Karşılaştırılabilir bir arabirim uygular. Java.math paketinde bildirilir ve tanımlanır .

Sınıf Oluşturucuları

Java'nın BigInteger Sınıfı, aşırı yüklenmiş birçok oluşturucuya sahiptir. Nasıl çalıştıklarını görmek için düzenleyicide her birini çalıştırmayı deneyebilirsiniz.
Sr# Yapıcı Tanım
1 BigInteger(bayt[] değer) Bir bayt dizisini BigInteger'a çevirir .
2 BigInteger(int işareti, bayt[] büyüklük) İşaret büyüklüğü temsilini bir BigInteger'a çevirir .
3 BigInteger(int bitLength, int kesinlik, Random rnd) Belirtilen uzunlukta rastgele oluşturulmuş pozitif bir BigInteger oluşturur.
4 BigInteger(Dize değeri) Ondalık dize temsilini bir BigInteger'a çevirir .
5 BigInteger(Dize val, int sayı tabanı) Belirtilen tabandaki String temsilini bir BigInteger'a dönüştürür .

Sınıf Yöntemleri

Java'nın BigInteger sınıfı, bazıları aşağıda açıklanan birçok yönteme sahiptir. Tabloda 'this', yöntemi çağıran BigInteger'ı temsil eder ve ' val ', yönteme iletilen bağımsız değişkendir.
abs() ' this ' BigInteger'ın mutlak değerini döndürür .
eklemek() ' this + val ' i hesaplayarak bir Biginteger döndürür .
çıkarma() ' this - val'i hesaplayarak bir Biginteger döndürür .
bölmek() ' this / val ' i hesaplayarak bir Biginteger döndürür .
çarpmak() ' this * val ' i hesaplayarak bir Biginteger döndürür .
değeri() Verilen long değerinde bir BigInteger değeri döndürür .
eşittir() ' this ' BigInteger ve belirli bir nesne arasındaki eşitliği karşılaştırır .
güç() ' thisüs ' ü hesaplayarak bir Biginteger döndürür .
dk() ' this ' BigInteger ile verilen değer arasındaki minimum değeri döndürür .
maks() ' this ' BigInteger ile verilen değer arasındaki maksimumu döndürür .
mod() ' this mod m ' için bir değer döndürür .
gcd() " this " mutlak değeri ile " geçirilen değer " arasındaki en büyük ortak bölen olan bir BigInteger döndürür .
bitSayı() " this " BigInteger öğesinin ikiye tümleyen temsilindeki bit sayısını döndürür .
bitUzunluğu() " this " BigInteger öğesinin en az ikiye tümleyen gösteriminde, işaret biti hariç bit sayısını döndürür .
Ve() ' this & val ' i hesaplayarak bir Biginteger döndürür .
veya() ' this |' hesaplayarak bir Biginteger döndürür. val '.
Olumsuz() ' ~this'i hesaplayarak bir Biginteger döndürür .
ve yok() ' this & ~val ' i hesaplayarak bir Biginteger döndürür .
intDeğer() BigInteger'ı bir int'e dönüştürür .
floatValue() BigInteger'ı float'a dönüştürür . _
uzunDeğer() BigInteger'ı long'a dönüştürür . _
çiftDeğer() BigInteger'ı double'a dönüştürür . _
toString() BigInteger öğesinin ondalık dize gösterimini döndürür .

örnek 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));
    }
}

Çıktı

15511210043330985984000000

Açıklama

Yukarıdaki kod parçasında, Java.math.BigInteger paketi içe aktarılarak BigInteger Sınıfı kullanılarak büyük bir sayının çarpanı hesaplanır . Bir hesaplaFaktoriyel yöntemi oluşturduk . Bu yöntem bir BigInteger oluşturur ve ardından f.multiply(BigInteger.valueOf(i)) çarpma yöntemini kullanarak faktöriyelini hesaplar .

Örnek 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);
    }
}

Çıktı

60 - 20 = 40 60 + 20 = 80 60 * 20 = 1200 60 / 20 = 3 min değer: 20 max değer: 60

Açıklama

Yukarıdaki kod parçasında, BigInteger(String val) yapıcısını kullanarak iki BigInteger oluşturduk . Sırasıyla 20 ve 60 değerleri ile BigInteger s big1 ve big2 üzerinde farklı yöntemler uyguladık . Aşağıdaki yöntemleri uyguladık:
  1. 60'tan 20'yi çıkarmak için big2.subtract(big1) .
  2. 20 ve 60'ı toplamak için big1.add(big2) .
  3. 20 ve 60'ı çarpmak için big1.multiply(big2) .
  4. 60'ı 20'ye bölmek için big2.divide(big1) .
  5. iki değerden küçük olanı almak için big1.min(big2) .
  6. iki değerden daha büyük olanı almak için big1.max(big2) .
Java.math.BigInteger'ın kodun en üstünde içe aktarıldığına dikkat etmek önemlidir .

Çözüm

Şimdiye kadar Java'daki BigInteger Sınıfına aşina olmalısınız . Farklı kurucu türleri kullanarak kodunuzda BigInteger s kullanabilmeniz gerekir . BigInteger Class metotlarını kullanarak bunlar üzerinde farklı aritmetik ve mantıksal işlemler de yapabilmeniz gerekir . Bir meydan okuma olarak, farklı BigInteger s değerleri ile farklı yöntemleri çağırmayı deneyebilirsiniz . Java'daki BigInteger s anlayışınızı daha da güçlendirecektir . Öğrenmenize daha fazla güvenmek için tekrar tekrar uygulamayı deneyin. İyi kodlamanın anahtarı pratiktir. İyi şanslar ve mutlu kodlamalar!
Yorumlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION