# تنسيق الفاصلة المتحركة مزدوج الدقة

تنسيق الفاصلة المتحركة مزدوج الدقة (بالإنجليزية: Double-precision floating-point format)‏، هو تنسيق من تنسيقات أعداد الحاسوب، يَشغل عادةً 64 بت في ذاكرة الحاسوب؛ يمثل مجموعة ديناميكية واسعة من القيم الرقمية باستخدام فاصلة الأساس عائمة.
تُستخدم الفاصلة العائمة لتمثيل القيم الكسرية، أو عندما تكون هناك حاجة إلى نطاق أوسع مما يتم توفيره بواسطة الفاصلة (النقطة) الثابتة (بنفس عرض البت)، حتى لو كانت على حساب الدقة. يمكن اختيار الدقة المزدوجة عندما يكون نطاق أو دقة الدقة الواحدة غير كاف.
في معيار IEEE 754-2008، يُشار رسميًا إلى تنسيق 64 بت الأساس-2 باسم 64-ثنائي؛ كان يطلق عليه ضعف double في IEEE 754-1985. يحدد معيات IEEE 754 تنسيقات الفاصلة العائمة الإضافية، بما في ذلك الدقة الأحادية 32 بت للأساس-2 و تمثيلات الأساس 10.
كانت فورتران واحدة من لغات البرمجة الأولى التي قدمت أنواع بيانات الفاصلة المتحركة أحادية ومزدوجة الدقة. قبل اعتماد IEEE 754-1985 على نطاق واسع، كان تمثيل وخصائص أنواع بيانات الفاصلة العائمة يعتمد على الشركة المصنعة للحاسوب ونموذج الحاسوب، وعلى القرارات التي اتخذها منفذي لغة البرمجة. على سبيل المثال، كان نوع البيانات مزدوج الدقة GW-BASIC هو تنسيق الفاصلة العائمة 64 بت للنقطة العائمة.

## أمثلة مزدوجة الدقة

0 01111111111 0000000000000000000000000000000000000000000000000000 $_2$ 01111111111 0 01111111111 0000000000000000000000000000000000000000000000000000 $_2$ ≙ 3FF0 0000 0000 0000 $_{16}$ ≙ +2 $^0$ × 1 = 1 :
0 01111111111 0000000000000000000000000000000000000000000000000010 $_2$ 01111111111 0 01111111111 0000000000000000000000000000000000000000000000000010 $_2$ ≙ 3FF0 0000 0000 0002 $_{16}$ ≙ +2 $^0$ × (1 + 2 $^{−51}$ ) ≈ 1.0000000000000004 :
0 10000000000 0000000000000000000000000000000000000000000000000000 $_2$ ≙ 4000 0000 0000 0000 $_{16}$ ≙ +2 $^1$ × 1 = 2 :
1 10000000000 0000000000000000000000000000000000000000000000000000 $_2$ ≙ C000 0000 0000 0000 $_{16}$ ≙ −2 $^1$ × 1 = −2 :
| 0 10000000000 1000000000000000000000000000000000000000000000000000 $_2$ ≙ 4008 0000 0000 0000 $_{16}$ ≙ +2 $^1$ × 1.1 $_2$ | = 11 $_2$ = 3 |
| 0 10000000001 0000000000000000000000000000000000000000000000000000 $_2$ ≙ 4010 0000 0000 0000 $_{16}$ ≙ +2 $^2$ × 1 | = 100 $_2$ = 4 |
| 0 10000000001 0100000000000000000000000000000000000000000000000000 $_2$ 0100000000000000000000000000000000000000000000000000 $_{01000000000101000000000000000000000000000000000000000000000000002}$ ≙ 4014 0000 0000 0000 $_{16}$ ≙ +2 $^2$ × 1.01 $_2$ | = 101 $_2$ = 5 |
| 0 10000000001 1000000000000000000000000000000000000000000000000000 $_2$ ≙ 4018 0000 0000 0000 $_{16}$ ≙ +2 $^2$ × 1.1 $_2$ | = 110 $_2$ = 6 |
| 0 10000000011 0111000000000000000000000000000000000000000000000000 $_2$ ≙ 4037 0000 0000 0000 $_{16}$ ≙ +2 $^4$ × 1.0111 $_2$ | = 10111 $_2$ = 23 |
| 0 01111111000 1000000000000000000000000000000000000000000000000000 $_2$ 01111111000 0 01111111000 1000000000000000000000000000000000000000000000000000 $_2$ ≙ 3F88 0000 0000 0000 $_{16}$ ≙ +2 $^{−7}$ × 1.1 $_2$ | = 0.00000011 $_2$ = 0.01171875 (3/256) |
| 0 00000000000 0000000000000000000000000000000000000000000000000001 $_2$ | ≙ 0000 0000 0000 0001 $_{16}$ ≙ +2 $^{−1022}$ × 2 $^{−52}$ = 2 $^{−1074}$ <br/> 40 4.9406564584124654 × 10 $^{−324}$ | (الحد الأدنى المزدوج الإيجابي دون العادي) |
| 0 00000000000 1111111111111111111111111111111111111111111111111111 $_2$ | ≙ 000F FFFF FFFF FFFF $_{16}$ ≙ +2 $^{−1022}$ × (1-2 $^{−52}$ ) <br/> 250 2.2250738585072009 × 10 $^{−308}$ | (الحد الأقصى المزدوج العادي) |
| 0 00000000001 0000000000000000000000000000000000000000000000000000 $_2$ | ≙ 0010 0000 0000 0000 $_{16}$ ≙ +2 $^{−1022}$ × 1 <br/> 250 2.2250738585072014 × 10 $^{−308}$ | (الحد الأدنى المزدوج الإيجابي العادي) |
| 0 11111111110 1111111111111111111111111111111111111111111111111111 $_2$ | F 7FEF FFFF FFFF FFFF $_{16}$ ≙ +2 $^{1023}$ × (1 + ( $^{1-2-2−52}$ )) <br/> ≈ 1,7976931348623157 × 10 $^{308}$ | (الحد الأقصر المزدوج) |
| 0 00000000000 0000000000000000000000000000000000000000000000000000 $_2$ | 000 0000 0000 0000 0000 $_{16}$ ≙ +0 |
| 1 00000000000 0000000000000000000000000000000000000000000000000000 $_2$ | 000 8000 0000 0000 0000 $_{16}$ ≙ −0 |
| 0 11111111111 0000000000000000000000000000000000000000000000000000 $_2$ | ≙ 7FF0 0000 0000 0000 $_{16}$ ≙ + ∞ | (اللانهاية الإيجابية) |
| 1 11111111111 0000000000000000000000000000000000000000000000000000 $_2$ | ≙ FFF0 0000 0000 0000 $_{16}$ ≙ −∞ | (اللانهاية السلبية) |
| 0 11111111111 0000000000000000000000000000000000000000000000000001 $_2$ | ≙ 7FF0 0000 0000 0001 $_{16}$ ≙ نان | (sNaN في معظم المعالجات، مثل x86 و ARM) |
| 0 11111111111 1000000000000000000000000000000000000000000000000001 $_2$ | ≙ 7FF8 0000 0000 0001 $_{16}$ ≙ NaN | (qNaN على معظم المعالجات، مثل x86 و ARM) |
| 0 11111111111 1111111111111111111111111111111111111111111111111111 $_2$ | ≙ 7FFF FFFF FFFF FFFF $_{16}$ ≙ NaN | (ترميز بديل ل NaN) |
| 0 01111111101 0101010101010101010101010101010101010101010101010101 $_2$ <br/> = 3fd5 5555 5555 5555 $_{16}$ | ≙ +2 $^{−2}$ × (1 + 2 $^{−2}$ + 2 $^{−4}$ + ... + 2 $^{−52}$ ) <br/> ≈ $^{1/3}$ |
| 0 10000000000 1001001000011111101101010100010001000010110100011000 $_2$ = 4009 21fb 5444 2d18 $_{16}$ | ≈ باي |
لم يتم تحديد ترميزات qNaN و sNaN بالكامل في IEEE 754 وتعتمد على المعالج. تستخدم معظم المعالجات، مثل عائلة x86 ومعالجات عائلة ARM، الجزء الأكثر أهمية من المجال ذو الأهمية للإشارة إلى شبيه NaN، هذا ما يوصي به IEEE 754. تستخدم معالجات PA-RISC البت للإشارة إلى NaN للإشارة.
افتراضيا، $^{03/01}$ تقرب للأسفل، بدلا من الدقة الواحدة، نظرا لوجود عدد فردي من البتات في significand.
بتفاصيل أكثر: