IEEE 754
معيار IEEE للحسابات ذات الفاصلة العائمة ( IEEE 754 ) هو معيار تقني للحسابات ذات الفاصلة العائمة، أُنشئ في الأصل عام 1985 من قِبل معهد مهندسي الكهرباء والإلكترونيات (IEEE). عالج هذا المعيار العديد من المشكلات التي كانت موجودة في تطبيقات الفاصلة العائمة المتنوعة، والتي جعلت استخدامها موثوقًا وقابلًا للنقل أمرًا صعبًا . تستخدم العديد من وحدات الفاصلة العائمة في الأجهزة معيار IEEE 754.
يحدد المعيار ما يلي:
- التنسيقات الحسابية: مجموعات من بيانات الفاصلة العائمة الثنائية والعشرية ، والتي تتكون من أعداد محدودة (بما في ذلك الأصفار الموقعة والأعداد غير الطبيعية )، واللانهايات ، وقيم "ليست عددًا" الخاصة ( NaNs ) .
- تنسيقات التبادل: ترميزات (سلاسل بت) يمكن استخدامها لتبادل بيانات الفاصلة العائمة بشكل فعال ومضغوط
- قواعد التقريب: الخصائص التي يجب استيفاؤها عند تقريب الأرقام أثناء العمليات الحسابية والتحويلات
- العمليات: العمليات الحسابية وغيرها من العمليات (مثل الدوال المثلثية ) على الصيغ الحسابية
- معالجة الاستثناءات: مؤشرات على الظروف الاستثنائية (مثل القسمة على صفر ، تجاوز السعة، إلخ).
يتضمن معيار IEEE 754-2008 ، الذي نُشر في أغسطس 2008، جميع عناصر معيار IEEE 754-1985 الأصلي تقريبًا ، بالإضافة إلى معيار IEEE 854-1987 (الحساب ذو النقطة العائمة المستقل عن الأساس).تم نشر الإصدار الحالي، IEEE 754-2019، في يوليو 2019. [ 1 ] وهو عبارة عن مراجعة طفيفة للإصدار السابق، ويتضمن بشكل أساسي توضيحات وإصلاحات للعيوب وعمليات جديدة موصى بها.
تاريخ
| سنة | المعيار الرسمي |
|---|---|
| 1982 | IEC 559:1982 |
| 1985 | IEEE 754-1985 |
| 1987 | IEEE 854-1987 |
| 1989 | IEC 559:1989 |
| 2008 | IEEE 754-2008 |
| 2011 | ISO/IEC/IEEE 60559:2011 |
| 2019 | IEEE 754-2019 |
| 2020 | ISO/IEC 60559:2020 |
| 2029 | سيتم الإعلان عنه لاحقاً |
نشأت الحاجة إلى معيار للفاصلة العائمة نتيجةً للفوضى التي سادت قطاعي الحوسبة التجارية والعلمية في ستينيات وسبعينيات القرن الماضي. استخدمت شركة IBM نظام الفاصلة العائمة الست عشري، حيث تُستخدم سبع بتات دائمًا للأس بغض النظر عن الدقة. بينما استخدمت حواسيب CDC و Cray تمثيل المتمم الأحادي ، الذي يسمح بقيمتي +0 و-0. لم تكن حواسيب CDC ذات الـ 60 بت مزودة بجامعات كاملة من 60 بت، لذا اقتصرت دقة العمليات الحسابية الصحيحة على 48 بت من وحدة الفاصلة العائمة. وكانت معالجة الاستثناءات الناتجة عن القسمة على صفر تختلف بين الحواسيب. وكان نقل البيانات بين الأنظمة، بل وحتى تكرار العمليات الحسابية نفسها على أنظمة مختلفة، أمرًا صعبًا في كثير من الأحيان.
تم نشر أول معيار IEEE للحسابات ذات الفاصلة العائمة، IEEE 754-1985 ، في عام 1985. وقد غطى فقط الحسابات الثنائية ذات الفاصلة العائمة.
صدرت نسخة جديدة، IEEE 754-2008 ، في أغسطس 2008، بعد عملية مراجعة استمرت سبع سنوات، برئاسة دان زوراس وتحرير مايك كوليشو . حلت هذه النسخة محل معياري IEEE 754-1985 (الحساب الثنائي ذو الفاصلة العائمة) و IEEE 854-1987 (الحساب ذو الفاصلة العائمة المستقل عن الأساس). تتضمن هذه النسخة الجديدة الصيغ الثنائية الموجودة في المعيار الأصلي، بالإضافة إلى ثلاث صيغ أساسية جديدة، صيغة ثنائية وصيغتان عشريتان. وللامتثال للمعيار الحالي، يجب على أي تطبيق أن يدعم صيغة أساسية واحدة على الأقل كصيغة حسابية وصيغة تبادل.
تمت الموافقة على المعيار الدولي ISO/IEC/IEEE 60559:2011 (بمحتوى مطابق لمعيار IEEE 754-2008) لاعتماده من خلال اللجنة الفنية المشتركة 1 /اللجنة الفرعية 25 التابعة لمنظمة ISO / IEC بموجب اتفاقية ISO/IEEE بشأن توجيهات معايير الأداء [ 2 ] [ 3 ] ونُشر. [ 4 ]
النسخة الحالية، IEEE 754-2019، الصادرة في يوليو 2019، مشتقة من معيار IEEE 754-2008 وتحل محله، وذلك بعد عملية مراجعة بدأت في سبتمبر 2015، برئاسة ديفيد ج. هوف وتحرير مايك كوليشو. تتضمن هذه النسخة بشكل أساسي توضيحات (مثل totalOrder ) وإصلاحات للأخطاء (مثل minNum )، بالإضافة إلى بعض العمليات الجديدة الموصى بها (مثل augmentedAddition ). [ 5 ] [ 6 ]
تمت الموافقة على المعيار الدولي ISO/IEC 60559:2020 (بمحتوى مطابق لمعيار IEEE 754-2019) لاعتماده من خلال اللجنة الفنية المشتركة 1 / اللجنة الفرعية 25 التابعة لمنظمة ISO/IEC ونُشر. [ 7 ]
من المتوقع إجراء المراجعة التالية للمعيار في عام 2029. [ 8 ]
التنسيقات
يُعرّف معيار IEEE 754 التنسيق بأنه "مجموعة من تمثيلات القيم والرموز العددية، وربما مصحوبة بترميز". [ 9 ]
يتم تحديد تنسيق الفاصلة العائمة بواسطة
- الأساس (يسمى أيضًا الجذر ) b ، وهو إما 2 (ثنائي) أو 10 (عشري) في IEEE 754؛
- دقة p ؛
- نطاق الأس من emin إلى emax ، مع emin = 1 − emax ، أو بشكل مكافئ emin = − ( emax − 1 )، لجميع تنسيقات IEEE 754.
يتضمن التنسيق
- الأعداد المنتهية، التي يمكن وصفها بثلاثة أعداد صحيحة: s = إشارة (صفر أو واحد)، c = جزء معنوي (يُسمى أيضًا معاملًا أو مانتسا ) لا يزيد عن p خانة عند كتابته بالأساس b (أي عدد صحيح في النطاق من 0 إلى b ^p - 1)، و q = أس بحيث يكون emin ≤ q + p - 1 ≤ emax . القيمة العددية لمثل هذا العدد المنتهي هي (-1) s × c × b^ q . [ أ ] علاوة على ذلك، توجد قيمتان صفريتان، تُسميان أصفارًا مُوَقَّعة : تُحدد خانة الإشارة ما إذا كان الصفر +0 (صفر موجب) أو -0 (صفر سالب).
- لانهائيتان: +∞ و −∞.
- نوعان من NaN (ليس رقمًا): NaN الهادئ (qNaN) والإشارة NaN (sNaN).
على سبيل المثال، إذا كانت b = 10، و p = 7، و emax = 96، فإن emin = −95، وبالتالي فإن المعامل يحقق الشرط 0 ≤ c ≤9999999 ، والأس يحقق الشرط −101 ≤ q ≤ 90. بالتالي، أصغر عدد موجب غير صفري يمكن تمثيله هو 1×10⁻¹⁰¹ ، وأكبر عدد هو 9999999×10⁹⁰ ( 9.999999× 10⁹⁶ )، لذا فإن النطاق الكامل للأعداد هو من −9.999999× 10⁹⁶ إلى 9.999999× 10⁹⁶ . العددان −b 1− emax و b 1− emax (هنا، −1× 10⁻⁹⁵ و 1× 10⁻⁹⁵ ) هما أصغر الأعداد الطبيعية (من حيث القيمة المطلقة) ؛ أما الأعداد غير الصفرية الواقعة بين هذين العددين الأصغرين فتُسمى أعدادًا دون طبيعية .
التمثيل والترميز في الذاكرة
قد يكون لبعض الأعداد عدة تمثيلات ممكنة بنظام الفاصلة العائمة. على سبيل المثال، إذا كانت b = 10 و p = 7، فيمكن تمثيل العدد -12.345 بالصيغ التالية: -12345×10⁻³ ، -123450×10⁻⁴ ، و-1234500×10⁻⁵ . مع ذلك، في معظم العمليات الحسابية، لا تعتمد النتيجة (القيمة) على تمثيل المدخلات.
بالنسبة للصيغ العشرية، أي تمثيل يكون صالحاً، وتُسمى مجموعة هذه التمثيلات " مجموعة فرعية ". عندما يكون للنتيجة عدة تمثيلات، يحدد المعيار أي عضو من المجموعة الفرعية يتم اختياره.
في الصيغ الثنائية، يكون التمثيل فريدًا. تُسمى معظم الأعداد العشرية، أي تلك التي تزيد قيمتها المطلقة عن 2emin ، بالأعداد العادية . تحتوي هذه الأعداد على جزء دال يقع بين 1 (مشمول) و2 (غير مشمول)، وبالتالي يكون له دائمًا بت بادئ بقيمة 1. لا يُخزن هذا البت صراحةً في التمثيل، بل يُترك ضمنيًا. تُسمى هذه القاعدة باتفاقية البت البادئ ، أو اتفاقية البت الضمنية ، أو اتفاقية البت المخفية ، وهي تُتيح للصيغة الحصول على بت إضافي من الدقة. يُضاف إلى أس العدد العادي " انحياز "، ويكون الأس الناتج منحازًا دائمًا عددًا صحيحًا موجبًا. تُسمى الأعداد الأصغر من 2emin بالأعداد دون العادية . تُمثل هذه الأعداد بالأس المنحاز 0، الذي يرمز إلى emin . بالنسبة للأعداد دون العادية، لا يوجد بت بادئ ضمني بقيمة 1، ويقع الجزء الدال بين 0 و1.
نظراً لإمكانية وجود ترميزات متعددة (على الأقل في التنسيقات التي تسمى تنسيقات التبادل )، قد يحمل NaN معلومات أخرى: بت الإشارة (الذي ليس له معنى، ولكن يمكن استخدامه بواسطة بعض العمليات) وحمولة البيانات ، والتي تهدف إلى معلومات التشخيص التي تشير إلى مصدر NaN (ولكن قد يكون للحمولة استخدامات أخرى، مثل NaN-boxing [ 10 ] [ 11 ] [ 12 ] ).
التنسيقات الأساسية والتبادلية
يُحدد المعيار خمسة تنسيقات أساسية، سُميت نسبةً إلى أساسها العددي وعدد البتات المستخدمة في ترميز التبادل. يوجد ثلاثة تنسيقات أساسية ثنائية للفاصلة العائمة (مُرمّزة بـ 32 أو 64 أو 128 بتًا)، وتنسيقان أساسيان عشريان للفاصلة العائمة (مُرمّزان بـ 64 أو 128 بتًا). يُعدّ التنسيقان binary32 و binary64 التنسيقين الأحادي والمزدوج على التوالي في معيار IEEE 754-1985 . يجب على أي تطبيق مُطابق أن يُنفّذ بالكامل تنسيقًا واحدًا على الأقل من التنسيقات الأساسية.
يحدد المعيار تنسيقات التبادل ضمن نطاق واسع من العروض، بما في ذلك التنسيقات الأساسية، لدعم تبادل بيانات الفاصلة العائمة بين التطبيقات. ويتم تحديد أحجام حقلي الأس والمعامل لكل عرض وفقًا لقواعد محددة بناءً على العرض. [ 13 ] يلخص الجدول التالي بعض تنسيقات التبادل الممكنة (بما في ذلك التنسيقات الأساسية).
| المهم | الأس | الخصائص [ ب ] | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| اسم | الاسم الشائع | الجذر | الأرقام [ ج ] | الأرقام العشرية [ د ] | مين | الأعلى | ماكسفال | log 10 MAXVAL | القيمة الدنيا > 0 (طبيعي) | القيمة الدنيا > 0 (دون المستوى الطبيعي) | ملحوظات |
| binary16 | نصف الدقة | 2 | 11 | 3.31 | -14 | 15 | 65504 | 4.816 | 6.10 × 10 −5 | 5.96 × 10 −8 | تبادل |
| binary32 | دقة واحدة | 2 | 24 | 7.22 | -126 | 127 | 3.40 × 1038 | 38.532 | 1.18 × 10 −38 | 1.40 × 10 −45 | أساسي |
| binary64 | دقة مزدوجة | 2 | 53 | 15.95 | -1022 | 1023 | 1.80 × 10308 | 308.255 | 2.23 × 10 −308 | 4.94 × 10 −324 | أساسي |
| binary128 | دقة رباعية | 2 | 113 | 34.02 | -16382 | 16383 | 1.19 × 104932 | 4932.075 | 3.36 × 10 −4932 | 6.48 × 10 −4966 | أساسي |
| binary256 | دقة ثمانية أضعاف | 2 | 237 | 71.34 | -262142 | 262143 | 1.61 × 1078 913 | 78913.207 | 2.48 × 10 −78913 | 2.25 × 10 −78984 | تبادل |
| decimal32 | 10 | 7 | 7 | -95 | 96 | 1.0 × 1097 | 97 − 4.34 × 10 −8 | 1 × 10 −95 | 1 × 10 −101 | تبادل | |
| decimal64 | 10 | 16 | 16 | -383 | 384 | 1.0 × 10385 | 385 − 4.34 × 10 −17 | 1 × 10 −383 | 1 × 10 −398 | أساسي | |
| عشري 128 | 10 | 34 | 34 | -6143 | 6144 | 1.0 × 106145 | 6145 − 4.34 × 10 −35 | 1 × 10 −6143 | 1 × 10 −6176 | أساسي | |
في الجدول أعلاه، تمثل القيم الصحيحة القيم الدقيقة، بينما تمثل القيم المكتوبة بالنظام العشري (مثل 1.0) القيم المقربة. الأسس الدنيا المذكورة خاصة بالأعداد العادية؛ أما تمثيل الأعداد شبه العادية فيسمح بتمثيل أعداد أصغر (في قيمتها المطلقة) مع بعض فقدان الدقة. على سبيل المثال، أصغر عدد موجب يمكن تمثيله بنظام binary64 هو 2⁻¹⁰⁷⁴ ؛ وتشمل المساهمات في قيمة -10⁻¹⁰⁷⁴ القيمة الدنيا للأس (emin) وهي -10²² ، وجميع بتات الجزء المعنوي البالغ عددها 53 بتًا باستثناء بت واحد ( 2⁻¹⁰⁷⁴ - ( 5³ - 1 ) ).
عدد الأرقام العشرية هو دقة التنسيق مُعبرًا عنها بعدد مكافئ من الأرقام العشرية. ويتم حسابه بضرب عدد الأرقام في لوغاريتم الأساس 10. على سبيل المثال، يتمتع نظام الأرقام الثنائية 128 بدقة تقارب دقة عدد عشري مكون من 34 رقمًا.
يُعدّ log 10 MAXVAL مقياسًا لنطاق الترميز. الجزء الصحيح منه هو أكبر أسّ يظهر في ناتج قيمة مكتوبة بالصيغة العلمية مع رقم واحد في الجزء الدال قبل الفاصلة العشرية (مثل 1.698 × 10) . العدد 38 قريب من أكبر قيمة في نظام العد الثنائي 32، وهي 9.999999 × 1096 هي أكبر قيمة في نظام العد العشري 32 بت.
يُعدّ كلٌّ من تنسيق binary32 (أحادي) وbinary64 (مزدوج) من أكثر التنسيقات شيوعًا اليوم. يوضح الشكل أدناه الدقة المطلقة لكلا التنسيقين ضمن نطاق من القيم. يُمكن استخدام هذا الشكل لاختيار التنسيق المناسب بناءً على القيمة المتوقعة للرقم والدقة المطلوبة.

مثال على تخطيط الفاصلة العائمة 32 بت هو

وتصميم 64 بت مشابه.
تنسيقات دقة موسعة وقابلة للتوسيع
يحدد المعيار صيغًا اختيارية للدقة الموسعة والقابلة للتوسيع، والتي توفر دقة أعلى من الصيغ الأساسية. [ 14 ] تُوسّع صيغة الدقة الموسعة الصيغة الأساسية باستخدام دقة أعلى ونطاق أوسع للأس. بينما تسمح صيغة الدقة القابلة للتوسيع للمستخدم بتحديد الدقة ونطاق الأس. يمكن للتطبيق استخدام أي تمثيل داخلي يختاره لهذه الصيغ؛ كل ما يلزم تحديده هو معلمات هذه الصيغة ( b و p و emax ). تصف هذه المعلمات بشكل فريد مجموعة الأعداد المحدودة (مجموعات الإشارة والمعامل والأس للأساس المحدد) التي يمكن تمثيلها.
يوصي المعيار بأن توفر معايير اللغة طريقة لتحديد قيمتي p و emax لكل أساس b مدعوم . [ 15 ] كما يوصي المعيار بأن تدعم معايير اللغة وتطبيقاتها تنسيقًا موسعًا يتمتع بدقة أعلى من أكبر تنسيق أساسي مدعوم لكل أساس b . [ 16 ] بالنسبة للتنسيق الموسع ذي الدقة المتوسطة بين تنسيقين أساسيين، يجب أن يكون نطاق الأس مساويًا لنطاق الأس في التنسيق الأساسي الأوسع التالي. فعلى سبيل المثال، يجب أن يكون للعدد الثنائي ذي الدقة الموسعة 64 بت قيمة emax لا تقل عن 16383. ويلبي التنسيق الموسع x87 ذو 80 بت هذا الشرط.
تضمن معيار IEEE 754-1985 الأصلي مفهوم التنسيقات الموسعة ، ولكن دون وجود علاقة إلزامية بين الحد الأدنى لقيمة emin والحد الأقصى لقيمة emax . على سبيل المثال، كان تنسيق Motorola 68881 ذو 80 بت، [ 17 ] حيث emin = − emax ، تنسيقًا موسعًا متوافقًا، ولكنه أصبح غير متوافق في مراجعة عام 2008.
تنسيقات التبادل
تُستخدم تنسيقات التبادل لتبادل بيانات الفاصلة العائمة باستخدام سلسلة بتات ذات طول ثابت لتنسيق معين.
ثنائي
لتبادل الأعداد الثنائية ذات الفاصلة العائمة، تم تعريف صيغ تبادل بطول 16 بت، و32 بت، و64 بت، وأي مضاعف للعدد 32 بت ≥ 128 [ e ] . وتُستخدم صيغة 16 بت لتبادل أو تخزين الأعداد الصغيرة (مثلًا، لأغراض الرسومات).
تتشابه آلية التشفير لهذه التنسيقات الثنائية للتبادل مع تلك المستخدمة في معيار IEEE 754-1985: بت إشارة، متبوعًا بـ w بتات أسية تصف إزاحة الأس بمقدار انحياز ، و p − 1 بتات تصف الجزء الكسري. يُحسب عرض حقل الأس لتنسيق k بت كالتالي: w = round(4 log 2 ( k )) − 13. تتبع التنسيقات الحالية ذات 64 و128 بت هذه القاعدة، بينما تحتوي التنسيقات ذات 16 و32 بت على عدد أكبر من بتات الأس (5 و8 على التوالي) مما توفره هذه الصيغة (3 و7 على التوالي).
كما هو الحال في معيار IEEE 754-1985، يُملأ حقل الأس المتحيز بجميع البتات التي قيمتها 1 للإشارة إما إلى اللانهاية (حقل المعامل الأخير = 0) أو إلى قيمة NaN (حقل المعامل الأخير ≠ 0). بالنسبة لقيم NaN، يتم التمييز بين قيم NaN الصامتة وقيم NaN المُشيرة باستخدام البت الأكثر أهمية في حقل المعامل الأخير حصريًا، [ f ] ، ويتم نقل البيانات في البتات المتبقية.
عشري
لتبادل الأعداد العشرية ذات الفاصلة العائمة، تُعرَّف صيغ تبادل لأي مضاعف من 32 بت. وكما هو الحال في التبادل الثنائي، فإن نظام التشفير لصيغ التبادل العشرية يُشفِّر الإشارة والأس والجزء الكسري. يُعرَّف نوعان مختلفان من التشفير على مستوى البت، ويتعقد التبادل بسبب الحاجة إلى مؤشر خارجي للتشفير المستخدم.
يُتيح الخياران ترميز الجزء الكسري كسلسلة مضغوطة من الأرقام العشرية باستخدام ترميز عشري مُكدس بكثافة ، أو كعدد صحيح ثنائي . يُعد الخيار الأول أكثر ملاءمة للتنفيذ المباشر للمعيار على مستوى الأجهزة، بينما يُناسب الخيار الثاني محاكاة البرمجيات على حاسوب ثنائي. في كلتا الحالتين، تكون مجموعة الأرقام (مجموعات الإشارة والجزء الكسري والأس) التي يُمكن ترميزها متطابقة، كما أن القيم الخاصة (±صفر مع أصغر أس، ±لانهاية، قيم NaN الصامتة، وقيم NaN المُشيرة) لها ترميزات متطابقة.
قواعد التقريب
يحدد المعيار خمس قواعد للتقريب. أول قاعدتين تقربان إلى أقرب قيمة؛ أما القواعد الأخرى فتسمى التقريب الموجه :
التقريب لأقرب
- التقريب إلى أقرب قيمة، والقيم المتساوية إلى قيم زوجية - يتم التقريب إلى أقرب قيمة؛ إذا وقع الرقم في المنتصف، يتم تقريبه إلى أقرب قيمة ذات أقل رقم معنوي زوجي.
- التقريب إلى أقرب قيمة ،إذا كان العدد يقع في المنتصف، يتم تقريبه إلى أقرب قيمة أعلى (للأعداد الموجبة) أو أسفل (للأعداد السالبة) .
في الحالات القصوى، تكون القيمة ذات مقدار أقل بكثير منسيتم تقريب العدد إلى أصغر أو أكبر عدد محدود (حسب إشارة القيمة). أي عددين لهما نفس القيمة يُعتبران متساويين؛ ويمكن تصور هذا الاختيار للتساوي على أنه نقطة المنتصف بينو، والتي، لو لم يكن الأس محدودًا، ستكون الأعداد العشرية القابلة للتمثيل التالية الأكبر في القيمة المطلقة. يتم تقريب الأعداد التي تكون قيمتها المطلقة أكبر من k إلى اللانهاية المقابلة. [ 18 ]
"التقريب لأقرب عدد صحيح، والتقريب للأعداد الزوجية" هو الإعداد الافتراضي للأعداد العشرية الثنائية، وهو الإعداد الافتراضي الموصى به للأعداد العشرية. أما "التقريب لأقرب عدد صحيح، والتقريب للأعداد البعيدة" فهو مطلوب فقط لتطبيقات الأعداد العشرية. [ 19 ]
الجولات الموجهة
- التقريب باتجاه الصفر - التقريب الموجه نحو الصفر (المعروف أيضًا باسم الاقتطاع ).
- التقريب باتجاه +∞ – التقريب الموجه نحو اللانهاية الموجبة (المعروف أيضًا باسم التقريب لأعلى أو السقف ).
- التقريب باتجاه −∞ – التقريب الموجه نحو اللانهاية السالبة (المعروف أيضًا باسم التقريب لأسفل أو التقريب إلى أقرب عدد صحيح ).
| وضع | مثال القيمة | |||
|---|---|---|---|---|
| +11.5 | +12.5 | -11.5 | -12.5 | |
| إلى أقرب، روابط حتى | +12.0 | +12.0 | -12.0 | -12.0 |
| إلى أقرب عدد صحيح، مع مراعاة المسافة من الصفر | +12.0 | +13.0 | -12.0 | -13.0 |
| باتجاه الصفر | +11.0 | +12.0 | -11.0 | -12.0 |
| باتجاه +∞ | +12.0 | +13.0 | -11.0 | -12.0 |
| باتجاه −∞ | +11.0 | +12.0 | -12.0 | -13.0 |
ما لم يُنص على خلاف ذلك، تُحدد نتيجة العملية الحسابية ذات الفاصلة العائمة بتطبيق دالة التقريب على النتيجة الرياضية الدقيقة للغاية. ويُقال إن هذه العملية مُقَرَّبة بشكل صحيح . ويُسمى هذا الشرط بالتقريب الصحيح . [ 20 ]
العمليات المطلوبة
تتضمن العمليات المطلوبة لتنسيق حسابي مدعوم (بما في ذلك التنسيقات الأساسية) ما يلي:
- التحويلات من وإلى الأعداد الصحيحة [ 21 ] [ 22 ]
- القيم المتتالية السابقة واللاحقة [ 21 ]
- العمليات الحسابية (الجمع، الطرح، الضرب، القسمة، الجذر التربيعي ، الضرب والجمع المدمج ، الباقي، الحد الأدنى، الحد الأقصى) [ 21 ] [ 22 ]
- التحويلات (بين التنسيقات، من وإلى السلاسل النصية، إلخ) [ 23 ] [ 24 ]
- القياس والتكميم (للأعداد العشرية) [ 25 ] [ 26 ]
- نسخ الإشارة ومعالجتها (القيمة المطلقة، النفي، إلخ) [ 27 ]
- المقارنات والترتيب الكلي [ 28 ] [ 29 ]
- تصنيف الأرقام (دون المستوى الطبيعي، المحدودة، إلخ) واختبار NaNs [ 30 ]
- اختبار وتعيين علامات الحالة [ 31 ]
مسندات المقارنة
يُوفّر المعيار دوال مقارنة لمقارنة بيانات الفاصلة العائمة ببيانات أخرى في صيغة الحساب المدعومة. [ 32 ] تُعامل أي مقارنة مع قيمة NaN على أنها غير مرتبة. وتُعتبر القيمتان -0 و+0 متساويتين.
مسند الترتيب الكلي
يُقدّم المعيار مُسندًا يُسمى totalOrder ، يُحدد ترتيبًا كليًا للعناصر الأساسية في صيغة الحساب المدعومة. [ 33 ] يتوافق هذا المُسند مع مُسندات المقارنة (انظر القسم § مُسندات المقارنة ) عندما يكون أحد الأعداد العشرية أصغر من الآخر. وتتمثل الاختلافات الرئيسية فيما يلي: [ 34 ]
- يمكن فرز NaN.
- تُعامل قيمة NaN كما لو كانت قيمتها المطلقة أكبر من قيمة Infinity (أو أي عدد آخر من الأعداد العشرية). (−NaN < −Infinity; +Infinity < +NaN.)
- يتم التعامل مع qNaN وsNaN كما لو كان لـ qNaN قيمة مطلقة أكبر من sNaN. (−qNaN < −sNaN; +sNaN < +qNaN.)
- ثم يتم ترتيب قيم NaN وفقًا لحجم البيانات. في معيار IEEE 754-2008، تُعامل قيمة NaN ذات حجم البيانات الأصغر على أنها ذات قيمة مطلقة أصغر. أما في معيار IEEE 754-2019، فيُقبل أي ترتيب تحدده آلية التنفيذ.
- يُعامل الصفر السالب على أنه أصغر من الصفر الموجب.
- إذا كان كلا طرفي المقارنة يشيران إلى نفس البيانات ذات الفاصلة العائمة، فإن البيانات ذات الأس الأصغر تُعامل على أنها ذات قيمة مطلقة أصغر. [ 33 ]
لا يفرض مُسند totalOrder ترتيبًا كليًا على جميع الترميزات في تنسيق معين. وعلى وجه الخصوص، لا يُميّز بين الترميزات المختلفة لنفس تمثيل الفاصلة العائمة، كما هو الحال عندما يكون أحد الترميزات أو كلاهما غير قياسي. [ 33 ] يتضمن معيار IEEE 754-2019 توضيحات بشأن totalOrder .
بالنسبة لتنسيقات التبادل الثنائي التي يتبع ترميزها توصية IEEE 754-2008 بشأن موضع بت الإشارة NaN ، فإن المقارنة مطابقة لتلك التي تحول أنواع الأرقام العشرية إلى عدد صحيح ذي إشارة ومقدار (بافتراض ترتيب حمولة متوافق مع هذه المقارنة)، وهي حيلة قديمة لمقارنة الأرقام العشرية بدون وحدة معالجة الأرقام العشرية. [ 35 ]
معالجة الاستثناءات
يُحدد المعيار خمسة استثناءات، يُعيد كل منها قيمة افتراضية، وله علامة حالة مُقابلة تُثار عند حدوث الاستثناء. [ g ] لا يُشترط أي معالجة أخرى للاستثناءات، ولكن يُوصى ببدائل إضافية غير افتراضية (انظر § معالجة الاستثناءات البديلة ).
الاستثناءات الخمسة المحتملة هي
- عملية غير صالحة
- غير مُعرَّف رياضيًا، على سبيل المثال، الجذر التربيعي لعدد سالب. افتراضيًا، يُرجع qNaN.
- القسمة على صفر
- تُعطي العملية على المعاملات المحدودة نتيجةً لانهائيةً تمامًا، مثل 1/0 أو log(0). افتراضيًا، تُرجع الدالة ±infinity.
- الفائض
- تكون النتيجة المحدودة كبيرة جدًا بحيث لا يمكن تمثيلها بدقة (أي أن أسها، بنطاق أس غير محدود، سيكون أكبر من emax ). افتراضيًا، تُرجع الدالة ± ما لا نهاية لأنماط التقريب لأقرب عدد (وتتبع قواعد التقريب لأنماط التقريب الموجه).
- التدفق السفلي
- تكون النتيجة صغيرة جدًا (خارج النطاق الطبيعي). افتراضيًا، تُرجع الدالة عددًا أقل من أو يساوي أصغر عدد موجب طبيعي في القيمة المطلقة (وفقًا لقواعد التقريب)؛ يشير العدد غير الطبيعي دائمًا إلى حدوث استثناء نقص في القيمة، ولكن افتراضيًا، إذا كان العدد دقيقًا، فلن يتم رفع أي علامة.
- غير دقيق
- لا يمكن تمثيل النتيجة الدقيقة (أي غير المقربة) بدقة. بشكل افتراضي، تُرجع الدالة النتيجة المقربة بشكل صحيح.
هذه هي الاستثناءات الخمسة نفسها التي تم تحديدها في IEEE 754-1985، ولكن تم توسيع استثناء القسمة على صفر ليشمل عمليات أخرى غير القسمة.
تُعرّف بعض تطبيقات الفاصلة العائمة العشرية استثناءات إضافية، [ 36 ] [ 37 ] والتي لا تُعد جزءًا من معيار IEEE 754:
- مثبت
- قيمة الأس في النتيجة كبيرة جدًا بالنسبة لتنسيق الوجهة. افتراضيًا، تُضاف أصفار لاحقة إلى المعامل لتقليل الأس إلى أكبر قيمة قابلة للاستخدام. إذا تعذر ذلك (لأنه سيؤدي إلى زيادة عدد الأرقام المطلوبة عن تنسيق الوجهة)، فسيحدث خطأ تجاوز السعة.
- مستدير
- يتطلب معامل النتيجة عددًا من الأرقام يفوق ما يوفره تنسيق الوجهة. ويتم الإشارة إلى استثناء عدم الدقة في حال تم تجاهل أي أرقام غير صفرية.
القيم الخاصة
صفر موقع
في معيار IEEE 754، يُعتبر الصفر عددًا مُوَقَّعًا، ما يعني وجود صفر موجب (+0) وصفر سالب (−0). في معظم بيئات التشغيل ، يُطبع الصفر الموجب عادةً على شكل " " والصفر السالب على شكل " ". يتصرف كلا القيمتين على أنهما متساويان في المقارنات العددية، لكن بعض العمليات تُرجع نتائج مختلفة للصفر 0الموجب والصفر السالب . على سبيل المثال، تُرجع 1/(−0) سالب ما لا نهاية، بينما تُرجع 1/(+0) موجب ما لا نهاية (بحيث تبقى المتطابقة 1/(1/±∞) = ±∞ ). من الدوال الشائعة الأخرى ذات الانقطاع عند x = 0 والتي قد تُعامل الصفر الموجب والصفر السالب بشكل مختلف، دالة Γ( x ) والجذر التربيعي الرئيسي لـ y + xi لأي عدد سالب y . وكما هو الحال مع أي طريقة تقريب، قد تُسبب العمليات التي تتضمن "صفرًا سالبًا" بعض الالتباس أحيانًا. على سبيل المثال، في معيار IEEE 754، لا يعني x = y بالضرورة 1/ x = 1/ y ، لأن 0 = −0 ولكن 1/0 ≠ 1/(−0) . [ 38 ] علاوة على ذلك، فإن الجذر التربيعي المقلوب [ h ] لـ ±0 هو ±∞ بينما الدالة الرياضية-0لا توجد قيمة سالبة على الأعداد الحقيقية.
الأرقام دون المستوى الطبيعي
تملأ القيم غير الطبيعية فجوة التدفق السفلي بقيم تكون المسافة المطلقة بينها مساوية للمسافة بين القيم المتجاورة خارج فجوة التدفق السفلي مباشرةً. يُعدّ هذا تحسينًا على الممارسة القديمة التي كانت تقتصر على وضع الصفر في فجوة التدفق السفلي، حيث كانت نتائج التدفق السفلي تُستبدل بالصفر (التدفق إلى الصفر). [ 39 ]
عادةً ما تتعامل أجهزة الفاصلة العائمة الحديثة مع القيم غير الطبيعية (وكذلك القيم الطبيعية)، ولا تتطلب محاكاة برمجية للقيم غير الطبيعية.
اللانهاية
يمكن تمثيل اللانهاية في خط الأعداد الحقيقية الممتد باستخدام أنواع بيانات الفاصلة العائمة IEEE، تمامًا مثل قيم الفاصلة العائمة العادية مثل 1 و1.5، إلخ. وهي ليست قيم خطأ بأي حال من الأحوال، على الرغم من أنها تُستخدم غالبًا (بحسب التقريب) كقيم بديلة عند حدوث تجاوز. عند حدوث استثناء القسمة على صفر، تُعاد قيمة لانهاية موجبة أو سالبة كنتيجة دقيقة. يمكن أيضًا تعريف اللانهاية كرقم (مثل ماكرو "INFINITY" في لغة C، أو " ∞ " إذا كانت لغة البرمجة تسمح بهذا التركيب).
يتطلب معيار IEEE 754 التعامل مع اللانهاية بطريقة معقولة، مثل
- (+∞) + (+7) = (+∞)
- (+∞) × (−2) = (−∞)
- (+∞) × 0 = NaN – لا يوجد شيء ذو معنى يمكن فعله
NaNs
يحدد معيار IEEE 754 قيمة خاصة تُسمى "ليس رقمًا" (NaN) تُعاد كنتيجة لبعض العمليات "غير الصالحة"، مثل 0/0، أو ∞×0 ، أو جذر (-1). بشكل عام، تنتشر قيم NaN، أي أن معظم العمليات التي تتضمن NaN ستؤدي إلى NaN، على الرغم من أن الدوال التي تُعطي نتيجة محددة لأي قيمة عددية عشرية معينة ستفعل ذلك أيضًا مع NaN، على سبيل المثال NaN ^ 0 = 1. يوجد نوعان من NaN: قيم NaN الصامتة الافتراضية، وقيم NaN المُشيرة (اختياريًا ). ستؤدي قيمة NaN المُشيرة في أي عملية حسابية (بما في ذلك المقارنات العددية) إلى ظهور استثناء "عملية غير صالحة" .
يحتوي تمثيل NaN المحدد في المعيار على بعض البتات غير المحددة التي يمكن استخدامها لترميز نوع الخطأ أو مصدره؛ ولكن لا يوجد معيار لهذا الترميز. نظريًا، يمكن لنظام التشغيل استخدام NaN للإشارة إلى المتغيرات غير المُهيأة، أو لتوسيع نطاق الأعداد العشرية بقيم خاصة أخرى دون إبطاء العمليات الحسابية مع القيم العادية، على الرغم من أن هذه التوسعات ليست شائعة. يُستخدم شكلٌ مُختلف من هذا النهج (يُسمى أحيانًا "تغليف NaN") في بعض بيئات تشغيل JavaScript [ 40 ] و LuaJIT [ 41 ] لتخزين قيم المؤشرات 64 بت وقيم الأعداد العشرية ذات الدقة المزدوجة IEEE 754 في نفس نوع البيانات، مما يسمح لبيئات التشغيل بالتخلص من عبء تخصيصات الذاكرة الإضافية والتحويلات غير المباشرة لقيم الأعداد العشرية.
الأساس المنطقي للتصميم

من الشائع الاعتقاد خطأً بأنّ الميزات الأكثر تخصصًا في معيار IEEE 754، التي نناقشها هنا، مثل الصيغ الموسعة، وقيم NaN، واللانهايات، والقيم شبه الطبيعية، وما إلى ذلك، لا تهمّ إلا المحللين العدديين أو التطبيقات العددية المتقدمة. في الواقع، العكس هو الصحيح: صُممت هذه الميزات لتوفير إعدادات افتراضية آمنة وموثوقة للمبرمجين غير المتمرسين في التحليل العددي، بالإضافة إلى دعم المكتبات العددية المتطورة التي يطورها الخبراء. يشير ويليام كاهان ، المصمم الرئيسي لمعيار IEEE 754، إلى أنه من الخطأ اعتبار خصائص معيار IEEE 754 للحسابات الثنائية ذات الفاصلة العائمة، التي لا تحظى بالتقدير الكافي، خصائص لا يمكن استخدامها إلا من قبل خبراء في مجال الأعداد. والحقيقة هي عكس ذلك تمامًا. ففي عام 1977، صُممت هذه الخصائص في معالج Intel 8087 لتلبية احتياجات أكبر شريحة ممكنة من السوق. ويُبين لنا تحليل الأخطاء كيفية تصميم حسابات الفاصلة العائمة، مثل معيار IEEE 754، بحيث تكون متسامحة إلى حد ما مع الجهل غير المقصود لدى المبرمجين. [ 42 ]
- تضمن القيم الخاصة مثل اللانهاية وNaN اكتمال العمليات الحسابية للأعداد العشرية جبريًا: فكل عملية حسابية تُنتج نتيجة محددة بدقة، ولن تُسبب - افتراضيًا - أي مقاطعة أو خطأ في الجهاز. علاوة على ذلك، صُممت خيارات القيم الخاصة المُعادة في الحالات الاستثنائية لإعطاء الإجابة الصحيحة في معظم الحالات. على سبيل المثال، في حساب IEEE 754، يكون الكسر المستمر مثليمكن تنفيذ ذلك بسهولة، وسيعطي الإجابة الصحيحة حتى عند القسمة على صفر ، لأن أي عدد موجب مقسوم على صفر ينتج عنه +∞ ، على سبيل المثال، عندما z = 3 ، فإن R ( z ) = 7. [ 43 ] وكما أشار كاهان، فإن الخطأ غير المعالج الناتج عن تجاوز سعة تحويل الفاصلة العائمة إلى عدد صحيح 16 بت، والذي تسبب في فقدان صاروخ أريان 5، ما كان ليحدث في ظل سياسة الفاصلة العائمة الافتراضية لمعيار IEEE 754. [ 42 ]
- تضمن الأعداد شبه الطبيعية أنه بالنسبة للأعداد العشرية المحدودة x و y ، فإن x − y = 0 إذا وفقط إذا كان x = y ، كما هو متوقع، ولكن هذا لم يكن صحيحًا في ظل تمثيلات الفاصلة العائمة السابقة. [ 44 ]
- فيما يتعلق بالأساس المنطقي لتصميم تنسيق x87 ذي 80 بت ، يشير كاهان إلى أن: "هذا التنسيق الموسع مصمم للاستخدام، مع فقدان طفيف في السرعة، في جميع العمليات الحسابية باستثناء أبسطها، والتي تستخدم معاملات من نوع float وdouble. على سبيل المثال، يُنصح باستخدامه لمتغيرات مؤقتة في الحلقات التي تُنفذ العلاقات التكرارية مثل حساب كثيرات الحدود، والضرب القياسي، والكسور الجزئية والمستمرة. وغالبًا ما يمنع حدوث تجاوزات أو نقص في التدفق قبل الأوان، أو الإلغاء المحلي الشديد الذي قد يُفسد الخوارزميات البسيطة". [ 45 ] إن حساب النتائج الوسيطة بتنسيق موسع بدقة عالية وأس موسع له سوابق في الممارسة التاريخية للحساب العلمي وفي تصميم الآلات الحاسبة العلمية ، على سبيل المثال ، كانت الآلات الحاسبة المالية من هيوليت-باكارد تُجري العمليات الحسابية والمالية بدقة تصل إلى ثلاثة أرقام عشرية أكثر مما كانت تخزنه أو تعرضه. [ 45 ] وقد مكّن تطبيق الدقة الموسعة من تطوير مكتبات الدوال الأساسية القياسية بسهولة، والتي كانت تُعطي عادةً نتائج بدقة مضاعفة ضمن وحدة واحدة في الخانة الأخيرة (ULP) بسرعة عالية.
- يُجنّب التقريب الصحيح للقيم إلى أقرب قيمة قابلة للتمثيل التحيزات المنهجية في الحسابات ويُبطئ من تراكم الأخطاء. كما يُزيل تقريب الأرقام المتشابهة إلى أقرب عدد صحيح التحيز الإحصائي الذي قد يحدث عند جمع الأرقام المتشابهة.
- كان الهدف من التقريب الموجه هو المساعدة في التحقق من حدود الخطأ، على سبيل المثال في حساب الفترات . كما أنه يستخدم في تنفيذ بعض الدوال.
- إن الأساس الرياضي للعمليات، وخاصة التقريب الصحيح، يسمح بإثبات الخصائص الرياضية وتصميم خوارزميات الفاصلة العائمة مثل 2Sum و Fast2Sum وخوارزمية جمع Kahan ، على سبيل المثال لتحسين الدقة أو تنفيذ إجراءات فرعية حسابية متعددة الدقة بسهولة نسبية.
من خصائص تنسيقات الدقة المفردة والمزدوجة أن ترميزها يسمح بفرزها بسهولة دون استخدام أجهزة الفاصلة العائمة، كما لو كانت البتات تمثل أعدادًا صحيحة ذات إشارة ومقدار ، مع أنه من غير الواضح ما إذا كان هذا أحد اعتبارات التصميم (من الجدير بالذكر أن تمثيل الفاصلة العائمة الست عشري السابق من IBM كان يتمتع بهذه الخاصية أيضًا للأعداد المعيارية). مع تمثيل المتمم الثنائي الشائع، يؤدي تفسير البتات كأعداد صحيحة ذات إشارة إلى فرز الموجب بشكل صحيح، ولكن مع عكس السالب؛ وكأحد التصحيحات الممكنة لذلك، باستخدام عملية XOR لعكس بت الإشارة للقيم الموجبة وجميع البتات للقيم السالبة، تصبح جميع القيم قابلة للفرز كأعداد صحيحة غير مُوقّعة (مع −0 < +0 ). [ 35 ]
التوصيات
معالجة الاستثناءات البديلة
يوصي المعيار بمعالجة الاستثناءات الاختيارية بأشكال متنوعة، بما في ذلك الاستبدال المسبق للقيم الافتراضية المُعرَّفة من قِبل المستخدم، واستخدام المصائد (الاستثناءات التي تُغيِّر مسار التحكم بطريقة ما)، ونماذج أخرى لمعالجة الاستثناءات تُقاطع المسار، مثل try/catch. وتبقى المصائد وآليات معالجة الاستثناءات الأخرى اختيارية، كما كانت في معيار IEEE 754-1985.
العمليات الموصى بها
توصي الفقرة 9 من المعيار بعمليات حسابية إضافية [ 46 ] ينبغي أن تحددها معايير اللغة. [ 47 ] ولا يُشترط وجود أي منها للامتثال للمعيار.
فيما يلي العمليات الحسابية الموصى بها، والتي يجب أن تقوم بالتقريب بشكل صحيح: [ 48 ]
- ،،
- ،،
- ،،
- ،،
- ل( مركب مسمى ويستخدم لحساب النمو الأسي ، الذي لا يمكن أن يكون معدله أقل من -1) [ 49 ]
- ،
- ،،
- ،،،
- ،،(انظر أيضًا: مضاعفات π )
- ،،،(انظر أيضًا: مضاعفات π )
- ،،
- ،،
ال،ولم تكن الوظائف جزءًا من معيار IEEE 754-2008 لأنها اعتُبرت أقل ضرورة. [ 50 ]وذُكرت، ولكن اعتُبر ذلك خطأً. [ 5 ] أُضيفت الثلاثة جميعها في مراجعة عام 2019.
تشمل العمليات الموصى بها أيضًا ضبط اتجاه التقريب في الوضع الديناميكي والوصول إليه، [ 51 ] وعمليات اختزال المتجهات المحددة في التنفيذ، مثل الجمع، والضرب المُقاس، والضرب النقطي (التقريب الصحيح غير مطلوب). يقرّ المعيار بأن النتائج العددية لهذه العمليات قد تختلف بين التطبيقات نظرًا لعرض النتيجة الوسيطة وترتيب العمليات. [ 52 ]
اعتبارًا من عام 2019كما يُوصى باستخدام عمليات حسابية مُعززة [ 53 ] للصيغ الثنائية. تُنتج هذه العمليات، المُخصصة للجمع والطرح والضرب، زوجًا من القيم يتألف من نتيجة مُقربة إلى أقرب عدد صحيح في الصيغة، وحد الخطأ الذي يُمكن تمثيله بدقة في الصيغة. عند نشر المعيار، لم تكن هناك تطبيقات برمجية معروفة، ولكن عمليات مُشابهة جدًا كانت مُطبقة بالفعل في البرامج باستخدام خوارزميات معروفة. يُشرح تاريخها ودوافع توحيدها في وثيقة خلفية. [ 54 ] [ 55 ]
تم حذف الدوال minNum و maxNum و minNumMag و maxNumMag ، التي كانت مطلوبة سابقًا في معيار IEEE 754-2008، في مراجعة عام 2019 نظرًا لعدم ارتباطها . [ 56 ] وبدلًا من ذلك، يُوصى بمجموعتين جديدتين من عمليات الحد الأدنى والحد الأقصى. [ 57 ] تحتوي المجموعة الأولى على minimum و minimumNumber و maximum و maximumNumber . أما المجموعة الثانية فتحتوي على minimumMagnitude و minimumMagnitudeNumber و maximumMagnitude و maximumMagnitudeNumber . يُشرح تاريخ هذا التغيير ودوافعه في وثيقة خلفية. [ 58 ]
تقييم التعبير
يوصي المعيار بكيفية تحديد معايير اللغة لدلالات تسلسلات العمليات، ويشير إلى دقة المعاني الحرفية والتحسينات التي تُغير قيمة النتيجة. في المقابل، أغفل الإصدار السابق من المعيار، الصادر عام ١٩٨٥ ، جوانب من واجهة اللغة، مما أدى إلى سلوك غير متسق بين المترجمات، أو مستويات تحسين مختلفة في المترجم المُحسِّن .
ينبغي أن تسمح لغات البرمجة للمستخدم بتحديد الحد الأدنى للدقة في العمليات الحسابية الوسيطة للتعبيرات لكل أساس. يُشار إلى هذا في المعيار باسم "العرض المفضل" ، وينبغي أن يكون من الممكن ضبطه على أساس كل كتلة. يجب حساب العمليات الحسابية الوسيطة داخل التعبيرات، وحفظ أي قيم مؤقتة، باستخدام الحد الأقصى لعرض المعاملات والعرض المفضل إن وُجد. على سبيل المثال، يجب أن يمتلك المترجم الذي يستهدف معالجات الفاصلة العائمة x87 وسيلة لتحديد أن العمليات الحسابية الوسيطة يجب أن تستخدم تنسيق التوسيع المزدوج . يجب دائمًا استخدام القيمة المخزنة للمتغير عند تقييم التعبيرات اللاحقة، بدلاً من أي قيمة سابقة من قبل التقريب وتعيين القيمة للمتغير.
قابلية التكرار
سمحت نسخة IEEE 754-1985 من المعيار بالعديد من الاختلافات في التطبيقات (مثل ترميز بعض القيم واكتشاف استثناءات معينة). قلّصت نسخة IEEE 754-2008 هذه الصلاحيات، لكن لا تزال هناك بعض الاختلافات (خاصةً بالنسبة للتنسيقات الثنائية). يوصي بند قابلية التكرار بأن توفر معايير اللغة وسيلةً لكتابة برامج قابلة للتكرار (أي برامج تُنتج نفس النتيجة في جميع تطبيقات اللغة)، ويصف ما يجب فعله لتحقيق نتائج قابلة للتكرار.
توجد أمثلة ملموسة لسلوكيات قد لا يمكن إعادة إنتاجها في لغتي C و C++ ، حيث تسمحان باستخدام دقة أعلى لنتائج عمليات الفاصلة العائمة ودمج تعابير الفاصلة العائمة، مثل دمج عملية الضرب والجمع العادية في عملية FMA ثم 1.0/sqrt(x)في الجذر التربيعي المقلوب كتعليماتة واحدة. [ 59 ] تسمح مُجمِّعات C/C++، مثل GCC و cl.exe، افتراضيًا بكلا الأمرين ما لم يُطلب منها خلاف ذلك صراحةً، لأن هذه التغييرات قد تُنتج شيفرة أسرع دون فقدان واضح للدقة. كما تُقدم المُجمِّعات تحسينات "سريعة" غير متوافقة بشكل واضح. [ 60 ] [ 61 ] عادةً لا تُنفَّذ الدوال الرياضية في لغة C بحيث تُقرَّب بشكل صحيح، مما يزيد من تعقيد المشكلة. [ 62 ] قد تتغير بيئة الفاصلة العائمة بشكل غير متوقع بواسطة شيفرة برمجية خارجية.
تمثيل الشخصيات
يتطلب المعيار من العمليات التحويل بين التنسيقات المدعومة وتسلسلات الأحرف الخارجية . [ 63 ] التحويل من وإلى تنسيق الأحرف العشرية إلزامي لجميع التنسيقات. يجب أن يكون التحويل إلى تسلسل أحرف خارجي بحيث يستعيد التحويل ذهابًا وإيابًا، من التمثيل الثنائي الداخلي إلى النص العشري الخارجي ثم العودة إلى التمثيل الثنائي الداخلي، الرقم الأصلي عند استخدام دالة roundTiesToEven. [ 64 ] لا يوجد شرط للحفاظ على حمولة NaN الصامت أو NaN الإشاري، وقد يؤدي التحويل من تسلسل الأحرف الخارجي إلى تحويل NaN الإشاري إلى NaN صامت.
سيتم الحفاظ على القيمة الثنائية الأصلية عن طريق التحويل إلى النظام العشري ثم العودة مرة أخرى باستخدام: [ 65 ]
- خمسة أرقام عشرية للثنائي 16،
- 9 أرقام عشرية للثنائي 32،
- 17 رقمًا عشريًا للثنائي 64،
- 36 رقمًا عشريًا للعدد الثنائي 128.
بالنسبة للتنسيقات الثنائية الأخرى، فإن عدد الأرقام العشرية المطلوبة هو [ i ]
حيث p هو عدد البتات المهمة في التنسيق الثنائي، على سبيل المثال 237 بت للتنسيق الثنائي 256.
ناقش جاي [ 66 ] خوارزميات، مع شفرة برمجية، للتحويل الصحيح من النظام الثنائي إلى النظام العشري ومن النظام العشري إلى النظام الثنائي، وللاختبار – من قبل باكسون وكاهان. [ 67 ]
في صيغ الأعداد العشرية ذات الفاصلة العائمة، يكون التحويل إلى تسلسلات الأحرف العشرية دقيقًا، ويُضمن سلوك التحويل ذهابًا وإيابًا طالما حافظ التمثيل النصي على الكمية [ 68 ] من خلال الاحتفاظ بالأصفار اللاحقة على يمين الفاصلة العشرية في الجزء الكسري. سيتم الحفاظ على التمثيل العشري باستخدام:
- 7 أرقام عشرية للعدد العشري 32،
- 16 رقمًا عشريًا للعدد العشري 64،
- 34 رقمًا عشريًا للعدد العشري 128.
القيم الحرفية السداسية عشرية
بالنسبة للصيغ الثنائية، يوصي المعيار بتوفير تحويلات من وإلى تسلسلات الأحرف السداسية العشرية الخارجية ، استنادًا إلى القيم الحرفية السداسية العشرية ذات الفاصلة العائمة في معيار C99+ . تتكون هذه القيمة الحرفية من إشارة اختيارية ( أو -)، والمؤشر "0x"، ورقم سداسي عشري مع أو بدون نقطة، ومؤشر للأس "p"، وأس عشري مع إشارة اختيارية. لا يُميّز هذا التركيب بين الأحرف الكبيرة والصغيرة. [ 69 ] يتناسب الأس العشري مع قوى العدد 2. على سبيل المثال، 0x0.1p01/16 هو 1/16 و 0x0.1p-41/256 هو 1/256. [ 70 ]
لا يذكر المعيار القيم الحرفية السداسية عشرية للتنسيقات العشرية لأن تسلسلات الأحرف العشرية يمكنها تمثيل جميع قيم الفاصلة العائمة العشرية بدقة.
انظر أيضاً
- تنسيق الفاصلة العائمة bfloat16
- بيناد
- المعالج المساعد
- C99 للاطلاع على أمثلة برمجية توضح كيفية الوصول إلى ميزات IEEE 754 واستخدامها
- العمليات الحسابية ذات الفاصلة العائمة ، للاطلاع على تاريخها، وأساس تصميمها، وأمثلة على استخدام ميزات معيار IEEE 754
- الحساب ذو النقطة الثابتة ، كنهج بديل للحساب مع الأعداد النسبية (مفيد بشكل خاص عندما يكون نطاق الأس معروفًا أو ثابتًا أو محدودًا في وقت الترجمة).
- نظام IBM z9 ، أول وحدة معالجة مركزية تقوم بتنفيذ الحساب العشري IEEE 754-2008 (باستخدام التعليمات البرمجية الدقيقة للأجهزة)
- وحدات المعالجة المركزية IBM z10 و IBM z196 و IBM zEC12 و IBM z13 ، التي تُنفذ العمليات الحسابية العشرية وفقًا لمعيار IEEE 754-2008 بشكل كامل في الأجهزة.
- ISO/IEC 10967 ، الحساب المستقل عن اللغة (LIA)
- Minifloat ، تنسيقات الفاصلة العائمة الثنائية منخفضة الدقة التي تتبع مبادئ IEEE 754
- معالجات POWER6 و POWER7 و POWER8 التي تُنفذ العمليات الحسابية العشرية وفقًا لمعيار IEEE 754-2008 بشكل كامل في الأجهزة
- strictfp ، كلمة مفتاحية قديمة في لغة برمجة Java كانت تقيد العمليات الحسابية سابقًا إلى دقة IEEE 754 المفردة والمزدوجة لضمان إمكانية إعادة إنتاجها عبر منصات الأجهزة الشائعة (اعتبارًا من Java 17، أصبح هذا السلوك مطلوبًا).
- معضلة صانع الجداول لمزيد من المعلومات حول التقريب الصحيح للدوال
- بيئة الأرقام القياسية من Apple
- نقطة عائمة مدببة
- Posit ، تنسيق رقمي بديل
ملحوظات
- ↑ على سبيل المثال، إذا كان الأساس 10، والإشارة 1 (تشير إلى السالب)، والمعامل 12345، والأس −3، فإن قيمة العدد هي (−1) 1 × 12345 × 10 −3 = −1 × 12345 × 0.001 = −12.345.
- ↑ قيم تقريبية. للاطلاع على القيم الدقيقة، راجع صفحة ويكيبيديا الخاصة بكل صيغة.
- ↑ عدد الأرقام في الأساس المستخدم، بما في ذلك أي رقم ضمني، ولكن لا يتم احتساب بت الإشارة.
- ↑ عدد الأرقام العشرية المقابلة، انظر النص لمزيد من التفاصيل.
- ↑ على عكس النظام العشري، لا يوجد تنسيق تبادل ثنائي بطول 96 بت. ومع ذلك، لا يزال هذا التنسيق مسموحًا به كتنسيق غير تبادلي.
- ↑ يوصي المعيار بـ 0 للإشارة إلى NaNs، و 1 للإشارة إلى NaNs الصامتة، بحيث يمكن إسكات NaNs الإشارة عن طريق تغيير هذا البت فقط إلى 1، في حين أن العكس قد يؤدي إلى ترميز اللانهاية.
- ↑ لا يتم رفع أي علم في بعض حالات التدفق السفلي.
- ↑ انظر الجذر التربيعي العكسي السريع وطرق حساب الجذور التربيعية#الطرق التكرارية للجذور التربيعية المقلوبة
- ↑ كقيد تنفيذي، يُضمن التقريب الصحيح فقط لعدد الأرقام العشرية المطلوبة مضافًا إليه 3 لأكبر تنسيق ثنائي مدعوم. على سبيل المثال، إذا كان binary32 هو أكبر تنسيق ثنائي مدعوم، فإن التحويل من تسلسل خارجي عشري مكون من 12 رقمًا عشريًا يُضمن تقريبه بشكل صحيح عند تحويله إلى binary32؛ لكن تحويل تسلسل مكون من 13 رقمًا عشريًا لا يضمن ذلك؛ ومع ذلك، يوصي المعيار بعدم فرض مثل هذا القيد في التطبيقات.
مراجع
- ↑ IEEE 754 2019
- ↑ هاس، جودي. "FW: ISO/IEC/IEEE 60559 (IEEE Std 754-2008)" . IEEE . مؤرشف من الأصل بتاريخ 27-10-2017 . تم الاطلاع عليه بتاريخ 04-04-2018 .
- ↑ "اتفاقية التعاون بين منظمة تطوير المعايير الشريكة (PSDO) التابعة لمنظمة ISO/IEEE" (ملف PDF) . ISO. 19-12-2007 . تاريخ الاسترجاع: 27-12-2021 .
- ^ ISO/IEC JTC 1/SC 25 2011 .
- 1 2 كوليشو، مايك (13 نوفمبر 2013). "تصويبات معيار IEEE 754-2008" . speleotrove.com . تم الاطلاع عليه بتاريخ 24 يناير 2020 .
- ↑ "ANSI/IEEE Std 754-2019" . ucbtest.org . تم الاطلاع عليه بتاريخ 16 يناير 2024 .
- ^ ISO/IEC JTC 1/SC 25 2020 .
- ↑ "قضايا المراجعة القادمة للرقم 754" . معهد مهندسي الكهرباء والإلكترونيات . تم الاطلاع عليه بتاريخ 12 أغسطس 2024 .
- ↑ IEEE 754 2019 ، §2.1 .
- ↑ "SpiderMonkey Internals" . udn.realityripple.com . تم الاطلاع عليه بتاريخ 11-03-2018 .
- ↑ كليمنس، بن (سبتمبر 2014). لغة سي في القرن الحادي والعشرين: نصائح حول لغة سي من المدرسة الجديدة . دار نشر أورايلي ميديا. ص 160. ISBN 9781491904442تم الاطلاع عليه بتاريخ 11 مارس 2018 .
- ^ "zuiderkwast/nanbox: NaN-boxing في لغة C" . جيثب . تم الاسترجاع 2018-03-11 .
- ↑ IEEE 754 2019 ، §3.6 .
- ↑ IEEE 754 2019 ، §3.7 .
- ↑ تنص IEEE 754 2019 ، §3.7 على ما يلي: "ينبغي أن تحدد معايير اللغة آليات تدعم الدقة القابلة للتوسيع لكل أساس مدعوم."
- ↑ تنص IEEE 754 2019 ، §3.7 على ما يلي: "يجب أن تدعم معايير اللغة أو تطبيقاتها تنسيق دقة موسع يمتد إلى أوسع تنسيق أساسي مدعوم في هذا الجذر."
- ↑ عائلة موتورولا MC68000 (ملف PDF) . دليل مرجعي للمبرمج. شركة NXP لأشباه الموصلات. 1992. الصفحات 1-16 ، 1-18 ، 1-23 .
- ↑ IEEE 754 2019 ، §4.3.1. "في سمات اتجاه التقريب التالية، تكون النتيجة دقيقة للغاية بمقدار لا يقل عنسوف يقترب إلىدون أي تغيير في الإشارة.
- ↑ IEEE 754 2019 ، §4.3.3
- ↑ IEEE 754 2019 ، §2.1
- 1 2 3 IEEE 754 2008 ، §5.3.1
- 1 2 IEEE 754 2008 ، §5.4.1
- ↑ IEEE 754 2008 ، §5.4.2
- ↑ IEEE 754 2008 ، §5.4.3
- ↑ IEEE 754 2008 ، §5.3.2
- ↑ IEEE 754 2008 ، §5.3.3
- ↑ IEEE 754 2008 ، §5.5.1
- ↑ IEEE 754 2008 ، §5.10
- ↑ IEEE 754 2008 ، §5.11
- ↑ IEEE 754 2008 ، §5.7.2
- ↑ IEEE 754 2008 ، §5.7.4
- ↑ IEEE 754 2019 ، §5.11
- 1 2 3 IEEE 754 2019 ، §5.10
- ↑ "تنفيذ دالة total_cmp لـ f32 و f64 بواسطة golddranks · طلب سحب رقم 72568 · rust-lang/rust" . GitHub .– يحتوي على اقتباسات ذات صلة من معيار IEEE 754-2008 و-2019. يحتوي على تطبيق وشرح لتورية لفظية.
- 1 2 هيرف، مايكل (ديسمبر 2001). "حيل الجذر" . الرؤية المجسمة: الرسومات .
- ↑ "9.4. الأعداد العشرية - العمليات الحسابية للأعداد العشرية ذات النقطة الثابتة والنقطة العائمة - وثائق بايثون 3.6.5" . docs.python.org . تم الاطلاع عليه بتاريخ 4 أبريل 2018 .
- ↑ "الحساب العشري - حالات استثنائية" . speleotrove.com . تم الاطلاع عليه بتاريخ 4 أبريل 2018 .
- ↑ غولدبيرغ 1991 .
- ^ مولر، جان ميشيل. بريسبار، نيكولاس؛ دي دينشين، فلوران؛ جانرود، كلود بيير؛ لوفيفر، فنسنت؛ ملكيوند، غيوم؛ ريفول, ناتالي ; ستيهلي، داميان؛ توريس، سيرج (2010). دليل حساب النقطة العائمة (1 ed.). بيركهوسر . دوى : 10.1007/978-0-8176-4705-6 . رقم ISBN 978-0-8176-4704-9.
- ↑ وينغو، آندي (18 مايو 2011). "تمثيل القيم في تطبيقات جافا سكريبت" . wingolog . مؤرشف من الأصل بتاريخ 21 أغسطس 2025. تم الاطلاع عليه بتاريخ 9 سبتمبر 2025 .
- ↑ بال، مايك (2009-11-02). "الإفصاح عن الملكية الفكرية لـ LuaJIT 2.0 وفرص البحث" . gmane.comp.lang.lua.general (يوزنت) . مؤرشف من الأصل (بريد إلكتروني) في 2009-11-07 . تم الاسترجاع في 2025-09-09 .
جوانب تصميم الآلة الافتراضية: [...] وسم NaN: تُستخدم قيم موسومة 64 بت لخانات المكدس وخانات الجدول.
- 1 2 كاهان، ويليام مورتون ؛ دارسي، جوزيف (2001) [1998-03-01]. "كيف تُؤذي الأعداد العشرية في جافا الجميع في كل مكان" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 2000-08-16 . تم الاطلاع عليه بتاريخ 2003-09-05 .
- ↑ كاهان، ويليام مورتون (12 فبراير 1981). "لماذا نحتاج إلى معيار حسابي للفاصلة العائمة؟" (ملف PDF) . ص 26. مؤرشف (ملف PDF) من الأصل بتاريخ 4 ديسمبر 2004.
- ↑ سيفرانس، تشارلز (20-02-1998). "مقابلة مع الرجل العجوز في مجال الفاصلة العائمة" .
- 1 2 كاهان، ويليام مورتون (11 يونيو 1996). "الأثر السلبي لمعايير أداء الحاسوب على الرياضيات التطبيقية والفيزياء والكيمياء" (ملف PDF) . مؤرشف (PDF) من النسخة الأصلية بتاريخ 13 أكتوبر 2013.
- ↑ IEEE 754 2019 ، §9.2
- ↑ IEEE 754 2019 ، البند 9
- ↑ IEEE 754 2019 ، §9.2 .
- ↑ "قوة زائدة - pow مقابل powr، powd، pown، rootn، compound" . IEEE . تم الاطلاع عليه بتاريخ 16 يناير 2024.
بما أن معدلات النمو لا يمكن أن تقل عن -1، فإن هذه المعدلات تشير إلى استثناءات غير صالحة.
- ↑ "ردًا على: الدوال المفقودة tanPi و asinPi و acosPi" . IEEE . مؤرشف من الأصل بتاريخ 2017-07-06 . تم الاطلاع عليه بتاريخ 2018-04-04 .
- ↑ IEEE 754 2019 ، §9.3 .
- ↑ IEEE 754 2019 ، §9.4 .
- ↑ IEEE 754 2019 ، §9.5
- ↑ ريدي، جيسون؛ ديميل، جيمس. "عمليات حسابية مُعززة مُقترحة لمعيار IEEE-754 لعام 2018" (ملف PDF) . المؤتمر الخامس والعشرون لمعهد مهندسي الكهرباء والإلكترونيات حول الحساب الحاسوبي (ARITH 2018). الصفحات 49-56 . مؤرشف (ملف PDF) من الأصل بتاريخ 23 يوليو 2019. تم الاطلاع عليه بتاريخ 23 يوليو 2019 .
- ↑ "ANSI/IEEE Std 754-2019 – وثائق أساسية" . IEEE . تم الاطلاع عليه بتاريخ 16 يناير 2024 .
- ↑ IEEE 754 2019 ، §5.3.1 .
- ↑ IEEE 754 2019 ، §9.6 .
- ↑ تشين، ديفيد. "إزالة/تخفيض أهمية عمليات MinNum وMaxNum من معيار IEEE 754-2018" (ملف PDF) . معهد مهندسي الكهرباء والإلكترونيات . تاريخ الاسترجاع: 16 يناير 2024 .
- ↑ بيراكا، غوثام (14 ديسمبر 2021). "علامة /fp:contract والتغييرات في أوضاع FP في VS2022" . devblogs.microsoft.com . مايكروسوفت . تم الاطلاع عليه بتاريخ 9 يونيو 2025 .
- ↑ "تحسين الخيارات (باستخدام مجموعة مترجمات جنو (GCC))" . gcc.gnu.org .
- ↑ "/fp (تحديد سلوك الفاصلة العائمة)" . learn.microsoft.com .
- ↑ "هل ينتج أي كود برمجي كثيف العمليات على الفاصلة العائمة نتائج دقيقة على مستوى البت في أي بنية معمارية قائمة على x86؟" . Stack Overflow .
- ↑ IEEE 754 2019 ، §5.12
- ↑ IEEE 754 2019 ، §5.12
- ↑ IEEE 754 2019 ، §5.12.2 .
- ↑ جاي، ديفيد م. (30-11-1990)، تحويلات صحيحة من النظام الثنائي إلى النظام العشري ومن النظام العشري إلى النظام الثنائي ، مخطوطة التحليل العددي، موري هيل، نيوجيرسي، الولايات المتحدة الأمريكية: مختبرات AT&T، 90-10
- ↑ باكسون، فيرن؛ كاهان، ويليام (22-05-1991)، برنامج لاختبار تحويل الأعداد العشرية إلى الثنائية وفقًا لمعايير IEEE ، مخطوطة، CiteSeerX 10.1.1.144.5889
- ↑ IEEE 754 2019 ، §5.12.2
- ↑ IEEE 754 2019 ، §5.12.3
- ↑ "6.9.3. القيم الحرفية ذات الفاصلة العائمة السداسية عشرية — دليل مستخدم مُصرّف غلاسكو هاسكل 9.3.20220129" . ghc.gitlab.haskell.org . تم الاطلاع عليه بتاريخ 29 يناير 2022 .
المعايير
- معيار IEEE للحسابات الثنائية ذات الفاصلة العائمة . ANSI/IEEE STD 754-1985. IEEE. 1985-10-12. الصفحات 1-20 . doi : 10.1109/IEEESTD.1985.82928 . ISBN 0-7381-1165-1.
- جمعية مهندسي الكهرباء والإلكترونيات (IEEE) للحاسبات (29 أغسطس 2008). معيار IEEE للحسابات ذات الفاصلة العائمة . IEEE STD 754-2008. IEEE. الصفحات 1-58 . doi : 10.1109/IEEESTD.2008.4610935 . ISBN 978-0-7381-5753-5. IEEE Std 754-2008.
- جمعية مهندسي الكهرباء والإلكترونيات (IEEE) للحاسبات (22 يوليو 2019). معيار IEEE للحسابات ذات الفاصلة العائمة . IEEE STD 754-2019. IEEE. الصفحات 1-82 . doi : 10.1109/IEEESTD.2019.8766229 . ISBN 978-1-5044-5924-2. IEEE Std 754-2019.
- ISO/IEC JTC 1/SC 25 (يونيو 2011). ISO/IEC/IEEE 60559:2011 — تكنولوجيا المعلومات — أنظمة المعالجات الدقيقة — العمليات الحسابية ذات الفاصلة العائمة . ISO. الصفحات 1-58 .
{{cite book}}: صيانة CS1: الأسماء الرقمية: قائمة المؤلفين ( رابط ) - ISO/IEC JTC 1/SC 25 (مايو 2020). ISO/IEC 60559:2020 — تكنولوجيا المعلومات — أنظمة المعالجات الدقيقة — العمليات الحسابية ذات الفاصلة العائمة . ISO. الصفحات 1-74 .
{{cite book}}: صيانة CS1: الأسماء الرقمية: قائمة المؤلفين ( رابط )
المراجع الثانوية
- العمليات الحسابية العشرية ذات الفاصلة العائمة ، الأسئلة الشائعة، المراجع، والروابط
- مقارنة الأعداد العشرية الثنائية
- المواد المرجعية لمعيار IEEE 754
- IEEE 854-1987 – التاريخ والمحاضر
- قراءات إضافية لمعيار IEEE 754. تتضمن وجهات نظر تاريخية.
للمزيد من القراءة
- غولدبيرغ، ديفيد (مارس 1991). "ما يجب أن يعرفه كل عالم حاسوب عن الحساب ذي الفاصلة العائمة" . مجلة ACM Computing Surveys . 23 (1): 5-48 . doi : 10.1145/103162.103163 .(مع الملحق "الاختلافات بين تطبيقات IEEE 754"):،)
- هيكر، كريس (فبراير 1996). "لنصل إلى النقطة (العائمة)" (ملف PDF) . مطور الألعاب : 19-24 .
- سيفرانس، تشارلز (مارس 1998). "IEEE 754: مقابلة مع ويليام كاهان" (ملف PDF) . مجلة IEEE Computer . 31 (3): 114-115 . doi : 10.1109/MC.1998.660194 . تاريخ الاسترجاع: 8 مارس 2019 .
- كوليشو، مايك (يونيو 2003). "الحساب العشري ذو الفاصلة العائمة: خوارزمية للحواسيب" (ملف PDF) . وقائع الندوة السادسة عشرة لمعهد مهندسي الكهرباء والإلكترونيات حول الحساب الحاسوبي، 2003. لوس ألاميتوس، كاليفورنيا: جمعية الحاسبات التابعة لمعهد مهندسي الكهرباء والإلكترونيات. الصفحات 104-111 . doi : 10.1109/ARITH.2003.1207666 . ISBN 978-0-7695-1894-7تم الاطلاع عليه بتاريخ 14-11-2014 ..
- مونيو، ديفيد (مايو 2008). "مزالق التحقق من حسابات الفاصلة العائمة" . معاملات ACM في لغات البرمجة والأنظمة . 30 (3): 1-41 . arXiv : cs/0701192 . doi : 10.1145/1353445.1353446 .: مجموعة من السلوكيات غير البديهية للفاصلة العائمة على البنى الشائعة، مع آثار على التحقق من البرامج واختبارها.
- مولر، جان ميشيل؛ بروني، نيكولاس؛ دي دينشين، فلوران؛ جانرود، كلود بيير؛ جولديس، ميوارا؛ لوفيفر، فنسنت؛ ملكيوند، غيوم؛ ريفول, ناتالي ; توريس، سيرج (2018) [2010]. دليل حساب النقطة العائمة (2 ed.). بيركهوسر . دوى : 10.1007/978-3-319-76526-6 . رقم ISBN 978-3-319-76525-9.
- أوفرتون، مايكل ل. (2001). أُلِّف في معهد كورانت للعلوم الرياضية ، جامعة نيويورك ، نيويورك، الولايات المتحدة الأمريكية. الحوسبة العددية باستخدام حسابات الفاصلة العائمة IEEE ( الطبعة الأولى). فيلادلفيا، الولايات المتحدة الأمريكية: SIAM . doi : 10.1137/1.9780898718072 . ISBN 978-0-89871-482-1. 978-0-89871-571-2, 0-89871-571-7.الطبعة الثانية، 2025. سيام. رقم ISBN 978-1-61197-840-7.
- كليف مولر يتحدث عن الأعداد العشرية
- بيبي، نيلسون إتش إف (22 أغسطس 2017). دليل حساب الدوال الرياضية - البرمجة باستخدام مكتبة برامج MathCW المحمولة ( الطبعة الأولى). سولت ليك سيتي، يوتا، الولايات المتحدة الأمريكية: سبرينغر إنترناشونال للنشر . doi : 10.1007/978-3-319-64110-2 . ISBN 978-3-319-64109-6.
- هوف، ديفيد ج. (ديسمبر 2019). "معيار IEEE 754: معيارٌ يستحق أن يُخلّد في التاريخ" . مجلة الكمبيوتر . 52 (12). IEEE : 109-112 . doi : 10.1109/MC.2019.2926614 .
روابط خارجية
- كاهان يتحدث عن ابتكار معيار IEEE للفاصلة العائمة . مقاطع فيديو للفائزين بجائزة تورينج . ١٦ نوفمبر ٢٠٢٠. مؤرشف من الأصل بتاريخ ٨ نوفمبر ٢٠٢١.
- الحساب الحاسوبي
- معايير IEEE
- أنواع البيانات ذات الفاصلة العائمة
- الحساب الثنائي
