تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الأعداد الضخمة BigInteger في سي شارب (جديد دوت نت 4)
#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/libr...iginteger.aspx

عبد العظيم بخاري
http://www.el-bukhari.com/2010/10/biginteger-4.html
}}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم