CodeGym /جاوا بلاگ /Random-UR /جاوا بگ انٹیجر کلاس
John Squirrels
سطح
San Francisco

جاوا بگ انٹیجر کلاس

گروپ میں شائع ہوا۔

BigInteger کلاس کیا ہے؟

جاوا میں ڈیٹا کی کچھ قدیم قسمیں ہیں جو انٹیجر آپریشنز کرنے کے لیے استعمال ہوتی ہیں، جیسے int یا long۔ تاہم، بعض اوقات ہمیں اس طرح کے ابتدائی ڈیٹا کی اقسام کے دائرہ کار سے باہر بڑی تعداد کو ذخیرہ کرنے کی ضرورت ہوتی ہے۔ BigInteger کلاس بہت بڑی تعداد کے لیے ریاضیاتی حساب کے لیے استعمال ہوتا ہے۔ یہ java.lang.Math پیکیج سے تمام طریقے فراہم کرتا ہے اور جاوا کے تمام پرائمیٹو انٹیجر آپریٹرز کو analogues فراہم کرتا ہے۔ BigInteger کلاس ماڈیولر ریاضی، بٹ ہیرا پھیری، GCD کیلکولیشن، اور چند دیگر آپریشنز کا احاطہ کرتا ہے۔ BigIntegers کو دو کے تکمیلی اشارے میں دکھایا گیا ہے۔ اس کی کوئی نظریاتی حد نہیں ہے کہ کتنی بڑی تعداد کو ذخیرہ کیا جاسکتا ہے کیونکہ میموری کو متحرک طور پر مختص کیا جاتا ہے۔ تاہم، عملی طور پر میموری محدود ہے اور ہم ایک انٹیجر کو اسٹور کر سکتے ہیں جس میں بٹس کی تعداد Integer.MAX_VALUE سے کم یا اس کے برابر ہو ۔ یہ عملی طور پر تقریباً تمام بڑی تعداد کو ذخیرہ کرنے کے لیے کافی بڑی اوپری باؤنڈ فراہم کرتا ہے۔

BigInteger کلاس کو کیسے لاگو کیا جاتا ہے؟

import java.math.BigInteger;
اپنے کوڈ میں BigInteger کلاس کو لاگو کرنے کے لیے ، آپ کو java.math.BigInteger پیکیج درآمد کرنا ہوگا۔

BigInteger کلاس ڈیکلریشن

جاوا میں BigInteger کلاس کا اعلان java.math پیکیج میں درج ذیل طریقے سے کیا گیا ہے ۔
public class BigInteger
   extends Number
      implements Comparable<BigInteger>
BigInteger کلاس نمبر کلاس کو بڑھاتا ہے اور ایک موازنہ انٹرفیس کو لاگو کرتا ہے ۔ یہ java.math پیکیج میں اعلان اور وضاحت کی گئی ہے ۔

کلاس کنسٹرکٹرز

جاوا کی BigInteger کلاس میں بہت سے اوورلوڈ کنسٹرکٹرز ہیں۔ آپ ایڈیٹر میں ہر ایک کو چلانے کی کوشش کر سکتے ہیں کہ وہ کیسے کام کرتے ہیں۔
Sr# کنسٹرکٹر تفصیل
1 BigInteger(byte[]val) بائٹ سرنی کو BigInteger میں ترجمہ کرتا ہے ۔
2 BigInteger(int signum, byte[] magnitude) سائن کی شدت کی نمائندگی کو BigInteger میں ترجمہ کرتا ہے ۔
3 BigInteger (int bit Length، int certainty، Random rnd) مخصوص لمبائی کا تصادفی طور پر تیار کردہ مثبت BigInteger بناتا ہے۔
4 BigInteger(String val) اعشاریہ سٹرنگ کی نمائندگی کو BigInteger میں ترجمہ کرتا ہے ۔
5 BigInteger (String val، int radix) مخصوص ریڈکس میں String کی نمائندگی کو BigInteger میں تبدیل کرتا ہے ۔

کلاس کے طریقے

جاوا کی BigInteger کلاس میں بہت سے طریقے ہیں، جن میں سے کچھ ذیل میں بیان کیے گئے ہیں۔ جدول میں، 'یہ' BigInteger کی نمائندگی کرتا ہے جو طریقہ کو کال کرتا ہے اور ' val ' وہ دلیل ہے جو طریقہ کو دی گئی ہے۔
abs() یہ ' this ' BigInteger کی مطلق قدر لوٹاتا ہے ۔
شامل کریں() یہ ' this + val ' کمپیوٹنگ کرکے ایک Biginteger لوٹاتا ہے۔
گھٹائیں() یہ ' this - val ' کمپیوٹنگ کرکے ایک Biginteger لوٹاتا ہے۔
تقسیم () یہ ' this/val ' کمپیوٹنگ کرکے ایک Biginteger لوٹاتا ہے۔
ضرب() یہ ' this * val ' کمپیوٹنگ کرکے ایک Biginteger لوٹاتا ہے۔
کی قدر() یہ دی گئی لمبی کی ایک BigInteger قدر لوٹاتا ہے ۔
برابر() یہ ' اس ' BigInteger اور دیے گئے آبجیکٹ کے درمیان مساوات کا موازنہ کرتا ہے۔
pow() یہ ' this exponent ' کمپیوٹنگ کرکے ایک Biginteger لوٹاتا ہے۔
منٹ() یہ ' اس ' BigInteger اور دی گئی قدر کے درمیان کم از کم لوٹاتا ہے۔
زیادہ سے زیادہ() یہ ' اس ' BigInteger اور دی گئی قدر کے درمیان زیادہ سے زیادہ واپس کرتا ہے ۔
موڈ() یہ ' this mod m ' کے لیے ایک قدر لوٹاتا ہے ۔
جی سی ڈی () یہ ایک BigInteger لوٹاتا ہے جو ' this ' کی مطلق قدر اور ' گزری ہوئی قدر ' کے درمیان سب سے بڑا مشترکہ تقسیم ہے۔
بٹ کاؤنٹ () یہ ' this ' BigInteger کی دو کی تکمیلی نمائندگی میں بٹس کی تعداد لوٹاتا ہے ۔
bitLength() یہ بٹس کی تعداد لوٹاتا ہے، نشانی بٹ کو چھوڑ کر، ' this ' BigInteger کی کم سے کم دو کی تکمیلی نمائندگی میں ۔
اور() یہ ' this & val ' کمپیوٹنگ کرکے ایک Biginteger لوٹاتا ہے۔
یا() یہ ' this | کمپیوٹنگ کرکے ایک Biginteger واپس کرتا ہے۔ val '.
نہیں() یہ ' ~this' کمپیوٹنگ کرکے ایک Biginteger لوٹاتا ہے ۔
اور نہیں() یہ ' this & ~val ' کمپیوٹنگ کرکے ایک Biginteger لوٹاتا ہے۔
intValue() یہ BigInteger کو int میں تبدیل کرتا ہے ۔
floatValue() یہ BigInteger کو فلوٹ میں تبدیل کرتا ہے ۔
longValue() یہ BigInteger کو long میں تبدیل کرتا ہے ۔
ڈبل ویلیو() یہ BigInteger کو ڈبل میں تبدیل کرتا ہے ۔
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

وضاحت

اوپر کے ٹکڑوں میں، java.math.BigInteger پیکیج کو درآمد کرکے BigInteger کلاس کا استعمال کرتے ہوئے بڑی تعداد کے فیکٹر کا حساب لگایا جاتا ہے۔ ہم نے ایک calculateFactorial طریقہ بنایا ہے ۔ یہ طریقہ ایک 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 منٹ قدر: 20 زیادہ سے زیادہ قدر: 60

وضاحت

اوپر کے ٹکڑوں میں، ہم نے BigInteger (String val) کنسٹرکٹر کا استعمال کرتے ہوئے دو BigInteger s بنائے ہیں۔ ہم نے BigInteger s big1 اور big2 پر بالترتیب 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 کوڈ کے اوپری حصے میں درآمد کیا گیا ہے۔

نتیجہ

اب تک آپ کو جاوا میں BigInteger کلاس سے واقف ہونا چاہئے۔ آپ کو مختلف قسم کے کنسٹرکٹرز کا استعمال کرتے ہوئے اپنے کوڈ میں BigInteger s استعمال کرنے کے قابل ہونا چاہئے ۔ آپ کو BigInteger کلاس کے طریقے استعمال کرکے ان پر مختلف ریاضی اور منطقی کارروائیاں کرنے کے قابل بھی ہونا چاہیے ۔ ایک چیلنج کے طور پر، آپ BigInteger s کی مختلف اقدار کے ساتھ مختلف طریقوں کو کال کرنے کی کوشش کر سکتے ہیں ۔ یہ جاوا میں BigInteger s کے بارے میں آپ کی سمجھ کو مزید مضبوط کرے گا۔ اپنے سیکھنے پر زیادہ اعتماد کرنے کے لیے اس پر بار بار مشق کرنے کی کوشش کریں۔ اچھی کوڈنگ کی کلید مشق ہے۔ خوش قسمتی اور مبارک کوڈنگ!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION