11-10-12, 05:01 PM
كاتب الموضوع : عبد العظيم بخاري
احد اعظم المميزات الجديدة التي اضافتها مايكروسوفت في لغة 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/libr...iginteger.aspx
عبد العظيم بخاري
http://www.el-bukhari.com/2010/10/biginteger-4.html