مرجع
آخر الزيارات

طفح عدد صحيح

237 كلمة•0 مشاهدة•🗒️ منذ يومين
باختصار: يحدث عندما تزيد القيمة المراد تخزينها عن المجال المتاح لنوع التخزين، بمعنى أن الذاكرة المتاحة لا تكفي تمثيل القيمة. تجد هنا «التعامل مع الطفح».
المحتويات
  1. التعامل مع الطفح
طفح عدد صحيح

على سبيل التعريف، يحدث عندما تزيد القيمة المراد تخزينها عن المجال المتاح لنوع التخزين، بمعنى أن الذاكرة المتاحة لا تكفي تمثيل القيمة. وفيما يلي تفاصيل أوسع عن ذلك.

ومن ناحية أخرى، بالنسبة للأعداد الموجبة وكذلك السالبة في الأنظمة المتممة ثنائيا يؤدي الطفح إلى الرجوع لأصغر قيمة ممكنة، فمثلا نوع uint32_t حجمه 32 بت. في هذه الحالة سيعود إلى الصفر عند محاولة تخزين رقم 4294967296 (2 مرفوعة لأس 32) .

من جانب آخر، توفر المعالجات في العادة إمكانية الكشف عن حدوث طفح. مثلا عائلة x86 توفر OF ‏ (Overflow Bit) يمكن التأكد من قيمتها لضمان عدم حدوث طفح.

التعامل مع الطفح

علاوةً على ذلك، في حالة حدوث طفح لم يتم التعامل معه ربما يتغير سير البرنامج. يتمكن المستعمل جراء ذلك من التأثير على عمل البرنامج بطرق لم يخطط لها المبرمج وهو مايؤدي إلى ثغرات أمنية.

من جهة ثانية، في اللغات التي لا تشترط تحديد نوع معين للمتغير، يتم عادة تحويل المتغير إلى نوع عدد صحيح جديد لمنع الطفح. من الأمثلة على ذلك بايثون وروبي بينما تقوم لغات مثل PHP بالتحويل إلى نوع فاصلة عائمة.

ومن ناحية أخرى، في لغة السي، يجب تولية عناية خاصة للطفح لأن طفح عدد صحيح ذو إشارة في السي يؤدي إلى سلوك غير معرف. لهذا السبب تقوم الكثير من معالجات السي باعتبار الطفح غير ممكن الحدوث، وتقوم بالاستمثال على ذلك الأساس وربما يؤدي ذلك إلى نتائج خاطئة وأحيانا كارثية.

كذلك، في حالة أن لغة البرمجة لا تقوم بمراقبة سير العمليات الحسابية، يجب على المبرمج القيام بالاحتياطات اللازمة لمنع الطفح عند إجراء العمليات الحسابية، وذلك بالتأكد قبل العملية من أن نائج العملية وأي نتائج وسيطة ستكون داخل المجال المسموح.

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.