عدد صحيح ثنائي عدد عشري

يتضمن معيار IEEE 754-2008 تنسيقات الأرقام العشرية ذات الفاصلة العائمة التي يمكن فيها ترميز الجزء الدال والأس (وحمولات NaN ) بطريقتين، يشار إليهما بالترميز الثنائي والترميز العشري . [ 1 ]

يُقسّم كلا التنسيقين العدد إلى بت الإشارة s ، والأس q (بين q min و q max )، والجزء الكسري c المكون من p خانة (بين 0 و 10 p −1). القيمة المُشفّرة هي ( 1) s × 10 q × c . في كلا التنسيقين، يكون نطاق القيم الممكنة متطابقًا، لكنهما يختلفان في كيفية تمثيل الجزء الكسري c . في التشفير العشري، يُشفّر كسلسلة من p خانة عشرية (باستخدام التشفير العشري المضغوط (DPD))، بينما في التشفير الثنائي الصحيح العشري ( BID )، يُشفّر كعدد ثنائي.

شكل

باستخدام حقيقة أن 2 ^10 = 1024 يزيد قليلاً عن 10 ^3 = 1000، يمكن ضغط 3^ n من الأعداد العشرية بكفاءة في 10^ n بت ثنائي. مع ذلك، تحتوي تنسيقات IEEE على أجزاء معنوية مكونة من 3 ^n + 1 رقم، وهو ما يتطلب عادةً 10 ^n + 4 بت ثنائي لتمثيلها.

لن يكون هذا فعالاً، لأننا نحتاج فقط إلى 10 من أصل 16 قيمة ممكنة للبتات الأربعة الإضافية. يمكن تصميم ترميز أكثر كفاءة بالاستفادة من حقيقة أن نطاق الأس يكون على شكل 3×2^ k ، بحيث لا يبدأ الأس أبدًا بـ 110. باستخدام ترميز Decimal32 (مع جزء دال مكون من 3×2+1 خانة عشرية) كمثال ( eحيث يرمز mإلى الأس، و إلى الجزء الدال):

  • إذا بدأ الجزء الدال بـ 0mmm، فإن حذف البت 0 البادئ يسمح للجزء الدال بأن يتناسب مع 23 بت:
ق 00يييي (0) ممم مممممممممممممممممممممممممممممممممممممممممممممممممممممممممممممممممممم ق 01يييي (0) ممم مممممممم مممممممممممم ق 10يييي (0) ممم مممممممممممممممممممممممممممممممممممممممممممممممممممممممممممممممممممممممممم
  • إذا بدأ الجزء الكسري بـ 0 100m، فإن حذف أول 100 بت يسمح بوضع الجزء الكسري في 21 بت. يتم إزاحة الأس بمقدار 2 بت، 11ويشير زوج من البتات إلى استخدام هذا الشكل:
ق 1100يييييي (100)ممممممممممممممممممممم ق 1101يييييييييييييييييييييييييييييييييييييييييييييييييييييييز (100) م ق 1110يييييي (100)ممممممممممممممممممممم
  • تستخدم رموز Infinity و quiet NaN و signaling NaN ترميزات تبدأ بـ s 1111:
s 11110 xxxxxxxxxxxxxxxxxxxxxxxxxx s 111110 xxxxxxxxxxxxxxxxxxxxxxxxx s 111111 xxxxxxxxxxxxxxxxxxxxxxxxx

البتات الموضحة بين قوسين هي بتات ضمنية : فهي غير مدرجة في الـ 32 بت من ترميز Decimal32، ولكن يتم استنتاجها من خلال البتتين التاليتين لبت الإشارة.

يحتوي ترميز Decimal64 و Decimal128 على حقول أسية ودلالية أكبر، لكنهما يعملان بطريقة مماثلة.

بالنسبة لترميز Decimal128، فإن 113 بت من الأرقام المعنوية كافية بالفعل لترميز 34 رقمًا عشريًا، والشكل الثاني غير مطلوب في الواقع.

مجموعة

يمكن ترميز الأعداد العشرية ذات الفاصلة العائمة بعدة طرق، وتمثل هذه الطرق دقة مختلفة. على سبيل المثال، يُرمّز العدد 100.0 على أنه 1000×10⁻¹ ، بينما يُرمّز العدد 100.00 على أنه 10000×10⁻² . تُسمى مجموعة الترميزات الممكنة لنفس القيمة العددية " مجموعة" في المعيار. إذا كانت نتيجة عملية حسابية غير دقيقة، يُحفظ أكبر قدر من البيانات المهمة باختيار عنصر المجموعة الذي يحتوي على أكبر عدد صحيح يمكن تخزينه في الجزء المهم مع الأس المطلوب.

يتراوح

يحد معيار IEEE 754r المقترح نطاق الأرقام إلى جزء مهم من الشكل 10 n 1، حيث n هو عدد الأرقام العشرية الكاملة التي يمكن تخزينها في البتات المتاحة بحيث يتم إجراء التقريب العشري بشكل صحيح.

32 بت64 بت128 بت
وحدات التخزين3264128
بتات الدلالات اللاحقة2050110
بتات ذات دلالة23/2453/54113
الأرقام المعنوية71634
بتات التجميع111317
بتات الأس81014
تحيز1013986176
إيماكس القياسي963846144
معيار إمين-95-383-6143

أداء

يُعدّ الترميز الثنائي أقل كفاءةً بطبيعته عند التحويل من وإلى البيانات المُرمّزة بالنظام العشري، مثل السلاسل النصية ( ASCII ، Unicode ، إلخ) و BCD . لذا، يُفضّل استخدام الترميز الثنائي فقط عندما تكون البيانات ثنائية وليست عشرية. وقد نشرت شركة IBM بعض بيانات الأداء غير المُوثّقة. [ 2 ]

انظر أيضاً

مراجع

  1. "مسودة معيار الحساب ذي الفاصلة العائمة P754" (ملف PDF) . 2006-10-04. مؤرشف من الأصل (ملف PDF) بتاريخ 2019-12-15 . تم الاطلاع عليه بتاريخ 2007-07-01 .
  2. "أداء المكتبة العشرية - 1.01" .

للمزيد من القراءة