فصلة عائمة
من المعلوم حتى المعالج يتعامل مع الأرقام المؤشرة وغير المؤشرة، وإضافة إلى ذلك فإنه يتعامل مع الأرقام الكسرية والتي تعهدها الرياضيات على أنها الأرقام الحقيقية Real.
مثلاً لدينا الأرقام التالية: 3.14159265، 2.71828، 33.155760000
نلاحظ هنا حتى الرقم الأخير يمتلك قيمة كبيرة جداً لدرجة يصعب فيهأعلى المعالج تمثيله لهذا الرقم وكذلك تطبيق العمليات الحسابية عليه لذلك تم البحث عن حل يحقق:
- إمكانية تمثيل الأعداد الكبيرة جداً.
- توسيع مجال التمثيل في الاتجاهين الموجب والسالب.
ومن هنا ظهر مبدأ الفاصلة العائمة.
تمثيل الأرقام بطريقة الفاصلة العائمة
أسلوب خاص لتمثيل الأرقام الكسرية حيث يخط فيها الرقم بشكل كسر وأس وإشارة لكل منهم مكانه المخصص.
حيث حتى خانة الإشارة تأخذ القيمة / 0 / إذا كان العدد الممثل موجباً، وتأخذ القيمة / 1 / إذا كان العدد الممثل سالب.
وقد توخى مصمموا الفاصلة العائمة تحقيق موازنة بين اهتمامهم بتوسيع مجال التمثيل وتحقيق دقة أعلى في التمثيل، وبناء على ذلك اعتمدت IEEE الأنماط التالية لتمثيل الأعداد بطريقة الفاصلة العائمة ليصبح بعدها بالإمكان تحقيق العمليات على الفاصلة العائمة، وهذه الأنماط هي :
• النمط أحادي الدقة.
• النمط مضاعف الدقة.
• النمط مضاعف الدقة الموسعة.
أنماط التمثيل
1- النمط أحادي الدقة
وفيه يحجز الرقم 32 خانة موزعة على النحوالتالي :
2- النمط مضاعف الدقة
وفيه يحجز الرقم 64 خانة موزعة على النحوالتالي :
نلاحظ مما تجاوز أنه :
• زيادة عدد خانات القوة يؤدي إلى توسيع المجال بالاتجاهين الموجب والسالب.
• زيادة عدد خانات الكسر يؤدي إلى زيادة الدقة.
3- النمط مضاعف الدقة الموسعة
تحتوي معالجات إنتل الحديثة (ابتداء من 486 فما فوق) على وحدة فاصلة عائمة متطورة تؤمن القدرة على معالجة الأرقام ذات الفاصلة العائمة بكفاءة عالية.
تتألف هذه الوحدة من ثمانية مسجلات معطيات منظمة على شكل مكدس بالإضافة إلى مسجلات خاصة هي: مسجل الحالة ومسجل التحكم ومسجل الإشارات ومسجل مؤشر التعليمة الأخيرة ومسجل مؤشر المعطيات الأخيرة ومسجل شيفرة التعليمة.
تتألف مسجلات المعطيات من 80 بت، تخزن المعطيات في هذه المسجلات بتنسيق الفاصلة العائمة ذوالدقة المضاعفة الموسعة تكون موزعة على النحوالتالي :
عندما يحمل عدد ذوفاصلة عائمة أوسليم أوبتنسيق BCD من الذاكرة إلى أحد هذه المسجلات فإنه يحول تلقائياً إلى تنسيق الدقة المضاعفة الموسع، وعند تخزين النتائج إلى الذاكرة يمكن تخزينها بهذا التنسيق أوبتنسيق فاصلة عائمة أقصر أوكرقم سليم أوبتنسيق BCD ويستخدم تنسيق IEEE754 من أجل تمثيل أرقام الفاصلة العائمة.
يتم التعامل مع هذه المسجلات الثمانية بطريقتين إما بشكل منفصل حيث ترقم هذه المسجلات من 0 وحتى 7، أوبشكل مكدس حيث يحتفظ الحقل TOP في مسجل الحالة برقم يشير إلى قمة المكدس.
لذلك يوجد لكل تعليمة عدة أشكال يتعامل جميع شكل مع المسجلات بطريقة مختلفة ما عدا بعض التعليمات تتعامل مع المسجل فقط بطريقة المكدس مثل تعليمة الجذر التربيعي.
يرمز للمسجلات بـ (St(i حيث تدل i على رقم المسجل بالنسبة إلى قمة المكدس، أما قمة المكدس فيشار إليها بـ (St(0 أوSt.
كما تملك هذه الوحدة عدداً من التعليمات صنفت ضمن ثلاث مجموعات :
• تعليمات نقل المعطيات.
• تعليمات تحميل الثوابت.
• التعليمات الحسابية البسيطة.
• التعليمات المثلثية واللوغاريتمية.
خوارزمية التمثيل
1- تحويل العدد من النظام العشري إلى النظام الثنائي :
الأعداد السليمة يتم تحويلها بالقسمة على 2 وأخذ الباقي، أما القسم الكسري (على يمين الفاصلة) فنضربه بـ 2.
مثال: تحويل الرقم 25.875 يتم على النحوالتالي :
أ- تحويل القسم السليم:
ب- تحويل القسم الكسري :
0.875 × 2 = 1.75، 1
0.75 × 2 = 1.5، 1
0.5 × 2 = 1، 1
إذاً الناتج هو :
25.875 = 11001.111
2- كتابة الرقم بالشكل القياسي - - -.1 × أي يخط الرقم السابق كما يلي : 1.1001111 ×
3- كتابة القوة باستخدام طريقة القوة المزاحة حيث يضاف إلى e القيمة 127 طالما استخدام التمثيل أحادي الدقة أونضيف 1023 طالما استخدام التمثيل مضاعف الدقة.
وبالعودة إلى مثالنا وباستخدامنا للتمثيل أحادي الدقةقد يكون :
4 = e ومنهقد يكون 131 = eb أي 10000011
4- كتابة العدد ممثلاُ بطريقة الفاصلة العائمة :
5- كتابة الناتج بالتمثيل الست عشري :
أما إذا أردنا تمثيل العدد السابق باستخدام التمثيل مضاعف الدقة فإنه بالعودة إلى البند / ثلاثة /قد يكون :
4 = e ومنهقد يكون 1027 = eb أي 10000000011
مثال:
إذا كان لدينا العدد التالي ممثلاً بطريقة الفاصلة العائمة CF350000 فإنه لإيجاد المكافئ العشري له نتبع المراحل التالية :
1- نلاحظ حتى العدد المعطى مكون من ثمان أرقام جميع منها يمثل بـ أربعة خانات (8×4=32) ومنه نجد حتى التمثيل المستخدم هوأحادي الدقة.
2- نخط الخانات الأربعة الممثلة لكل خانة ستة عشرية أي :
• الإشارة = –
• الأس = 10011110 = eb أي 158 ومنه 31 = e
• العدد = 1.0110101
=1 + 4/1 + 8/1 + 32/1 + 128/1
= 1.4140625
منطقات ذات صلة
- العمليات الحسابية على أعداد الفاصلة العائمة
المراجع
- Computer Organization and Design
- http://www.randelshofer.ch/fhw/gri/float.html
- http://docs.python.org/tut/node16.html
- http://www.answers.com/topic/floating-point