محوّل الفاصلة العائمة

اكتب عدداً عشرياً، أو بتات عدد بالفاصلة العائمة بالنظام السداسي العشري، لترى كيف يخزنه الحاسوب. ترسم الصفحة حقول الإشارة والأس والكسر، وتعطي القيمة الدقيقة المخزنة.

مجانية تعمل داخل متصفحك آخر مراجعة: الأربعاء، 1 جمادى الآخرة 1448 بعد الهجرة

تعمل هذه الأداة داخل متصفحك. ما تكتبه فيها لا يُرسل إلينا.

طريقة الاستخدام

  1. اختر الصيغة: نصف الدقة أو المفردة أو المزدوجة.
  2. تحت أدخل، اختر عدداً عشرياً لتحويل عدد، أو نمط بتات (سداسي عشري) لقراءة بتات مخزنة.
  3. اكتب القيمة في القيمة. تتحدّث الصفحة أثناء كتابتك.
  4. اقرأ البتات الملونة وجدول الحقل وجدول النتيجة. ويظهر خطأ التقريب لعدد عشري فقط.

كيف يُقسَم العدد إلى حقول

يتكون العدد ذو الفاصلة العائمة الثنائي من ثلاثة حقول: بت الإشارة، وحقل الأس، وحقل الكسر. تستخدم الدقة المفردة 1 و8 و23 بتاً، والمزدوجة 1 و11 و52، ونصف الدقة 1 و5 و10. وبالنسبة للعدد الطبيعي تكون القيمة (−1)^الإشارة × (1 + الكسر) × 2^(حقل الأس − الانحياز)، حيث الانحياز 127 للدقة المفردة (يعرّف IEEE 754 الحقول في صيغه الثنائية).

0.15625 = 1.25 × 2^−3  →  الإشارة 0، الأس 127 − 3 = 124 = 01111100، الكسر 0100… → 0 01111100 01000000000000000000000 = 3E200000

التقريب إلى أقرب قيمة

معظم الأعداد العشرية لا يمكن تخزينها بدقة بالنظام الثنائي. تقرّب الصفحة العدد المكتوب إلى أقرب قيمة تستطيع الصيغة تخزينها، وعند التعادل تذهب إلى القيمة التي يكون بتها الأخير زوجياً. والمسافة بين قيمتين متجاورتين هي ulp (وحدة في آخر خانة)، وخطأ التقريب لا يتجاوز نصف ulp. فالعدد 0.1 بدقة مفردة يُخزَّن كـ 0.100000001490116119384765625، لذلك يكون الخطأ +1.49 × 10^-9، أي 0.2 ulp.

القيم الخاصة

  • الصفر: أس وكسر أصفار. تُحفظ بته للإشارة، فالصفر السالب و+0 نمطان مختلفان.
  • الأعداد دون الطبيعية: حقل أس أصفار دون بت مخفٍ. وهي تملأ الفراغ بين الصفر وأصغر عدد طبيعي.
  • اللانهاية: أس كله واحدات وكسر أصفار. والعدد العشري الذي يتقرّب فوق أكبر عدد محدود يصبح لانهاية.
  • NaN: أس كله واحدات، وكسر ليس صفراً. يفصل البت الأعلى في الكسر بين NaN الصامت والإشاري، وما بقي من الكسر هو الحمولة.

ما الذي لا تغطيه الصفحة

  • الحساب: تعرض الصفحة كيف يُخزَّن العدد، لا نتيجة جمع عددين مخزنين أو ضربهما.
  • الأعداد العشرية في IEEE 754-2008 التي تستخدم الأساس 10، وصيغ أخرى مثل bfloat16 أو الأعداد ذات 8 بتات.
  • الأعداد الصحيحة بالمكمل الثنائي: انظر حاسبة المكمل الثنائي.

مثال محلول: 0.1 بدقة مفردة

اكتب 0.1 مع الصيغة مضبوطة على الدقة المفردة. العدد 0.1 هو 1.6 × 2^−4، والمعامل 1.6 لا يمكن كتابته ببت كسر من 23 بتاً. يُقرَّب الكسر إلى الأعلى، فتكون القيمة المخزنة أكبر قليلاً من 0.1.

النتيجة القيمة
السداسي العشري 3DCCCCCD
القيمة المخزنة بالضبط 0.100000001490116119384765625
خطأ التقريب (المخزن ناقص المكتوب) +1.490116119384765625e-9
خطأ التقريب بوحدات ulp +0.200

الأسئلة الشائعة

لماذا لا يساوي 0.1 + 0.2 العدد 0.3 تماماً في الحاسوب؟

لا يمكن تخزين 0.1 ولا 0.2 بدقة بالنظام الثنائي، ثم يُقرَّب مجموعهما مرة أخرى. وفي الدقة المزدوجة يعطي 0.1 + 0.2 القيمة 0.30000000000000004، وهي القيمة التي تقع فوق 0.3 المخزن مباشرة.

ما الفرق بين القيمة المخزنة بالضبط والعدد المكتوب؟

العدد المكتوب هو العدد العشري الذي كتبته. والقيمة المخزنة بالضبط هي العدد الثنائي الذي تحفظه الصيغة فعلاً، مكتوباً كاملاً. وخطأ التقريب هو الفرق بينهما، فترى مدى البعد بين الاثنين.

ماذا تعني ulp؟

ulp هي وحدة في آخر خانة: الفرق بين قيمة مخزنة والقيمة التالية لها في النطاق نفسه. والتقريب إلى أقرب قيمة لا يبعد أكثر من نصف ulp، وتعرض الصفحة الخطأ عدداً وبوحدات ulp معاً.

لماذا يصبح 1e39 لانهاية في الدقة المفردة؟

أكبر قيمة بالدقة المفردة تقارب 3.4028235 × 10^38. والعدد الذي يتقرّب فوقها لا يملك قيمة محدودة مخزنة، لذلك تستخدم الصيغة اللانهاية، وتعلّم الصفحة النتيجة بأنها كبيرة جداً.

هل يستطيع NaN أن يحفظ معلومات؟

نعم. بتات الكسر في NaN لا تُستخدم في قيمته، فيستطيع البرنامج أن يخزّن فيها حمولة. تعرض الصفحة كسر NaN حمولةً، وتبيّن إن كان صامتاً أو إشارياً.

المصادر

آخر مراجعة للأرقام والنص: الأربعاء، 1 جمادى الآخرة 1448 بعد الهجرة.

نستخدم ملفات تعريف ارتباط ضرورية لتشغيل الموقع. وبموافقتك، تستخدم Google أيضاً ملفات تعريف ارتباط للإعلانات، لعرض إعلانات مخصصة. وإذا رفضتها، فستظل ترى إعلانات، لكنها لن تكون مخصصة لك.