CodeGym /مدونة جافا /Random-AR /فئة جافا BigInteger
John Squirrels
مستوى
San Francisco

فئة جافا BigInteger

نشرت في المجموعة

ما هي فئة BigInteger؟

هناك بعض أنواع البيانات البدائية في Java التي يتم استخدامها، مثل int أو long، لتنفيذ عمليات الأعداد الصحيحة. ومع ذلك، نحتاج أحيانًا إلى تخزين أعداد كبيرة خارج نطاق أنواع البيانات البدائية هذه. تُستخدم فئة BigInteger للحسابات الرياضية للأعداد الكبيرة جدًا. فهو يوفر كافة الأساليب بدءًا من الحزمة java.lang.Math ونظائرها لجميع عوامل تشغيل الأعداد الصحيحة البدائية في Java. يغطي BigInteger Class العمليات الحسابية المعيارية ومعالجة البتات وحساب GCD وبعض العمليات الأخرى. يتم تمثيل الأعداد الصحيحة الكبيرة بصيغة تكملة ثنائية. لا يوجد حد نظري لحجم العدد الذي يمكن تخزينه لأن الذاكرة يتم تخصيصها ديناميكيًا. ومع ذلك، عمليا الذاكرة محدودة ويمكننا تخزين عدد صحيح يحتوي على عدد بتات أقل من أو يساوي Integer.MAX_VALUE . وهذا يوفر حدًا أعلى كبيرًا بدرجة كافية لتخزين جميع الأعداد الكبيرة تقريبًا.

كيف يتم تنفيذ فئة BigInteger؟

import java.math.BigInteger;
لتنفيذ فئة BigInteger في التعليمات البرمجية الخاصة بك، تحتاج إلى استيراد حزمة java.math.BigInteger .

إعلان فئة BigInteger

تم الإعلان عن فئة BigInteger في Java بالطريقة التالية في حزمة java.math :
public class BigInteger
   extends Number
      implements Comparable<BigInteger>
تعمل فئة BigInteger على توسيع فئة Number وتنفيذ واجهة قابلة للمقارنة . تم الإعلان عنه وتعريفه في حزمة java.math .

بناة الطبقة

تحتوي فئة BigInteger في Java على العديد من المُنشئات المثقلة. يمكنك محاولة تشغيل كل منها في المحرر لمعرفة كيفية عملها.
ريال سعودى# البناء وصف
1 عدد صحيح كبير (بايت [] فال) يترجم مصفوفة بايت إلى BigInteger .
2 BigInteger (إشارة كثافة العمليات، حجم البايت []) يترجم تمثيل حجم الإشارة إلى BigInteger .
3 BigInteger (طول البت الدولي، اليقين الداخلي، RND العشوائية) إنشاء BigInteger موجب تم إنشاؤه عشوائيًا بالطول المحدد.
4 BigInteger (سلسلة فال) يترجم تمثيل السلسلة العشرية إلى BigInteger .
5 BigInteger (سلسلة فال، جذر int) يحول تمثيل السلسلة في الجذر المحدد إلى BigInteger .

طرق الصف

تحتوي فئة BigInteger في Java على العديد من الأساليب، بعضها موضح أدناه. في الجدول، يمثل "هذا" BigInteger الذي يستدعي الطريقة و" val " هو الوسيط الذي تم تمريره إلى الطريقة.
عضلات المعدة() تقوم بإرجاع القيمة المطلقة لـ BigInteger ' هذا ' .
يضيف() تقوم بإرجاع Biginteger عن طريق حساب " this + val ".
طرح او خصم() تقوم بإرجاع Biginteger عن طريق حساب ' this - val '.
يقسم() تقوم بإرجاع Biginteger عن طريق حساب " this / val ".
تتضاعف() تقوم بإرجاع Biginteger عن طريق حساب ' this * val '.
قيمة ال() تقوم بإرجاع قيمة BigInteger المعطاة long .
يساوي () إنه يقارن المساواة بين BigInteger ' هذا ' وكائن معين.
الأسرى () تقوم بإرجاع عدد صحيح كبير عن طريق حساب " هذا الأس ".
دقيقة () تقوم بإرجاع الحد الأدنى بين BigInteger ' هذا ' والقيمة المحددة.
الأعلى() تقوم بإرجاع الحد الأقصى بين BigInteger ' هذا ' والقيمة المحددة.
عصري() تقوم بإرجاع قيمة لـ " هذا التعديل m ".
جي سي دي () تقوم بإرجاع BigInteger وهو القاسم المشترك الأكبر بين القيمة المطلقة لـ ' this ' و'القيمة التي تم تمريرها '.
عدد البت () تقوم بإرجاع عدد البتات في التمثيل الثنائي المكمل لـ BigInteger ' هذا ' .
طول البت () تقوم بإرجاع عدد البتات، باستثناء بت الإشارة، في الحد الأدنى من التمثيل المكمل لـ BigInteger ' هذا ' .
و() تقوم بإرجاع Biginteger عن طريق حساب " this & val ".
أو() تقوم بإرجاع Biginteger عن طريق حساب ' this | فال '.
لا() تقوم بإرجاع Biginteger عن طريق حساب " ~this".
و لا() تقوم بإرجاع Biginteger عن طريق حساب " this & ~val ".
قيمة int() يقوم بتحويل BigInteger إلى int .
القيمة العائمة () يقوم بتحويل BigInteger إلى float .
قيمة طويلة () يقوم بتحويل BigInteger إلى ملف .
قيمة مزدوجة () يقوم بتحويل BigInteger إلى double .
إلى سلسلة() تقوم بإرجاع تمثيل السلسلة العشرية لـ 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 . لقد أنشأنا طريقة countFactorial . تنشئ هذه الطريقة 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 باستخدام مُنشئ 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 في الجزء العلوي من الكود.

خاتمة

الآن يجب أن تكون على دراية بفئة BigInteger في Java. يجب أن تكون قادرًا على استخدام BigInteger في التعليمات البرمجية الخاصة بك باستخدام أنواع مختلفة من المنشئات. يجب أن تكون أيضًا قادرًا على إجراء عمليات حسابية ومنطقية مختلفة عليها باستخدام أساليب BigInteger Class. كتحدي، يمكنك تجربة استدعاء أساليب مختلفة بقيم مختلفة لـ BigInteger s. سيؤدي ذلك إلى تعزيز فهمك لـ BigInteger s في Java. لكي تكون أكثر ثقة في تعلمك، حاول ممارسة ذلك مرارًا وتكرارًا. مفتاح البرمجة الجيدة هو الممارسة. حظا سعيدا والترميز سعيد!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION