الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الأعداد الضخمة BigInteger في سي شارب (جديد دوت نت 4)

بدأه عبد العظيم بخاري في 1 أكتوبر 2010 · 0 رد · 275 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

احد اعظم المميزات الجديدة التي اضافتها مايكروسوفت في لغة C# 4 هو كلاس BigInteger العالي الدقة الرقمية والموجود في System.Numerics .

يسمح لك هذا الكلاس بتخزين رقم كبير جداً (اعلى من 32^2 و 64^2) اضافة لسهولة التعامل مع هذه الأرقام واجراء العمليات عليها.

يمكنك مثلا تخزين رقم ضخم مثل 25! والذي يساوي تقريباً

15511210043330985984000000 (1.5 x 10^25)

في الواقع قد لا نستخدم هذا الكلاس كثيرأ (باستثناء بعض الامور العلمية والحسابية ) وذلك بسبب عدم حاجتنا لهذه الدقة الكبيرة..

لكن الإستخدام الاجمل والأروع هو اثناء عمليات التشفير وانتاج مفاتيح private و public فيمكنك بسهولة التعامل معها ..

قد يخطر في بالك أن تسأل نفسك كيف استطاعت مايكروسوفت أن تعمل implement لكلاس BigInterger ؟

بنظرة سريعة للReflector سوف تجد أن الأرقام تخزن في array من الbits مما يعطيها قابلية توسع كبيرة دون الحاجة للكثير من مساحة التخزين . لكن وكما لكل شيئ في هذا العالم حد معين فسوف تحصل على OutOfMemoryException في حال لم يكن بالامكان تخزين الرقم في الذاكرة .

BigInteger LargeNum = new BigInteger("63478363457345834575434434634753854678");
BigInteger LargeNum2 = new BigInteger("23783457357346536345873587456736736536");
BigInteger LargeNum3 = LargeNum.multiply(LargeNum2); // LargeNum3 contains the result.

لمزيد من المعلومات حول هذا الكلاس الجديد قم بالإطلاع على هذا الرابط :

http://msdn.microsoft.com/en-us/library/system.numerics.biginteger.aspx

عبد العظيم بخاري

http://www.el-bukhari.com/2010/10/biginteger-4.html

تم تعديل هذه المشاركة بواسطة عبد العظيم بخاري في 1 أكتوبر 2010 في 23:34

مواضيع مشابهة