ما الفرق بين واحد الدقة و الدقة المزدوجة النقطة العائمة العملية ؟

StackOverflow https://stackoverflow.com/questions/801117

سؤال

ما هو الفرق بين دقة واحدة عملية نقطة عائمة و الدقة المزدوجة العائمة العملية ؟

انا مهتمة بصفة خاصة من الناحية العملية فيما يتعلق لألعاب الفيديو.على سبيل المثال, هل نينتندو 64 64 بت المعالج و إذا كان لا ثم هل هذا يعني أنها كانت قادرة على الدقة المزدوجة النقطة العائمة العمليات ؟ يمكن أن PS3 و Xbox 360 سحب قبالة الدقة المزدوجة عمليات النقطة العائمة أو واحد فقط الدقة في الاستخدام العام هو ضعف قدرات الدقة استخدام (إذا كانت موجودة؟).

هل كانت مفيدة؟

المحلول

ملاحظة:على نينتندو 64 لا يملك معالج 64 بت ، ومع ذلك:

العديد من الألعاب استغل رقاقة 32 بت معالجة الوضع كما زادت دقة البيانات المتاحة مع 64 بت أنواع البيانات لا تتطلب عادة من الألعاب 3D ، وكذلك حقيقة أن معالجة 64 بت البيانات يستخدم مرتين بقدر RAM, ذاكرة التخزين المؤقت, و عرض النطاق الترددي ، مما يقلل من الأداء العام للنظام.

من Webopedia:

مصطلح الدقة المزدوجة شيء من تسمية خاطئة لأن الدقة ليست حقا مزدوجة.
كلمة مزدوجة مستمد من حقيقة أن الدقة مزدوج الرقم يستخدم مرتين العديد من القطع العادية رقم النقطة العائمة.
على سبيل المثال, إذا واحد-الدقة عدد يتطلب 32 بت ، الدقة المزدوجة نظيره سوف يكون 64 بت طويلة.

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

من IEEE معيار حساب النقطة العائمة

دقة واحدة

IEEE دقة واحدة النقطة العائمة معيار التمثيل يتطلب 32 بت الكلمة ، التي قد تكون ممثلة على النحو مرقمة من 0 إلى 31 ، من اليسار إلى اليمين.

  • الشيء الأول هو التوقيع بت ، S ،
  • ثمانية أجزاء هي الأس بت, 'E' ،
  • النهائي 23 بت هي جزء 'و':

    S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF
    0 1      8 9                    31
    

قيمة V ممثلة كلمة يمكن تحديده على النحو التالي:

  • إذا ه=255 و هو غير صفرية ، ثم V=نان ("لا عددا")
  • إذا ه=255 و و صفر و S 1 ، ثم V=-اللانهاية
  • إذا ه=255 و و صفر و S 0 ، ثم V=اللانهاية
  • إذا 0<E<255 ثم V=(-1)**S * 2 ** (E-127) * (1.F) حيث "1.و" هو تهدف إلى تمثيل ثنائي عدد خلق قبل التقديم و مع ضمني الرائدة في 1 و ثنائي نقطة.
  • إذا E=0 و هو غير صفرية ، ثم V=(-1)**S * 2 ** (-126) * (0.F).هذه هي "unnormalized" القيم.
  • إذا E=0 و F هو صفر و S 1 ، ثم V=-0
  • إذا E=0 و F هو صفر و S 0 ، ثم V=0

على وجه الخصوص ،

0 00000000 00000000000000000000000 = 0
1 00000000 00000000000000000000000 = -0

0 11111111 00000000000000000000000 = Infinity
1 11111111 00000000000000000000000 = -Infinity

0 11111111 00000100000000000000000 = NaN
1 11111111 00100010001001010101010 = NaN

0 10000000 00000000000000000000000 = +1 * 2**(128-127) * 1.0 = 2
0 10000001 10100000000000000000000 = +1 * 2**(129-127) * 1.101 = 6.5
1 10000001 10100000000000000000000 = -1 * 2**(129-127) * 1.101 = -6.5

0 00000001 00000000000000000000000 = +1 * 2**(1-127) * 1.0 = 2**(-126)
0 00000000 10000000000000000000000 = +1 * 2**(-126) * 0.1 = 2**(-127) 
0 00000000 00000000000000000000001 = +1 * 2**(-126) * 
                                     0.00000000000000000000001 = 
                                     2**(-149)  (Smallest positive value)

الدقة المزدوجة

IEEE الدقة المزدوجة النقطة العائمة معيار التمثيل يتطلب 64 بت الكلمة ، التي قد تكون ممثلة على النحو مرقمة من 0 إلى 63 ، من اليسار إلى اليمين.

  • الشيء الأول هو التوقيع بت ، S ،
  • أحد عشر المقبلة بت هي الأس بت, 'E' ،
  • النهائي 52 بت هي جزء 'و':

    S EEEEEEEEEEE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    0 1        11 12                                                63
    

قيمة V ممثلة كلمة يمكن تحديده على النحو التالي:

  • إذا ه=2047 و هو غير صفرية ، ثم V=نان ("لا عددا")
  • إذا ه=2047 و صفر و S 1 ، ثم V=-اللانهاية
  • إذا ه=2047 و صفر و S 0 ، ثم V=اللانهاية
  • إذا 0<E<2047 ثم V=(-1)**S * 2 ** (E-1023) * (1.F) حيث "1.و" هو تهدف إلى تمثيل ثنائي عدد خلق قبل التقديم و مع ضمني الرائدة في 1 و ثنائي نقطة.
  • إذا E=0 و هو غير صفرية ، ثم V=(-1)**S * 2 ** (-1022) * (0.F) هذه هي "unnormalized" القيم.
  • إذا E=0 و F هو صفر و S 1 ، ثم V=-0
  • إذا E=0 و F هو صفر و S 0 ، ثم V=0

المرجع:
ANSI/IEEE القياسية 754-1985,
معيار ثنائي حساب النقطة العائمة.

نصائح أخرى

قرأت الكثير من الإجابات ولكن لا شيء يبدو بشكل صحيح شرح فيها كلمة مزدوج يأتي من.أتذكر جيد جدا الشرح الذي قدمه أستاذ جامعي كان قبل بضع سنوات.

وإذ تشير إلى نمط من VonC الجواب ، واحد الدقة النقطة العائمة التمثيل يستخدم كلمة من 32 بت.

  • 1 بت التوقيع, S
  • 8 بت ل الأس, 'E'
  • 24 بت ل جزء, وتسمى أيضا العشري, أو معامل (على الرغم من أن فقط 23 ممثلة).دعونا نسميها 'M' (على العشري, أنا أفضل هذا الاسم بأنه "جزء" يمكن أن يساء فهمها).

التمثيل:

          S  EEEEEEEE   MMMMMMMMMMMMMMMMMMMMMMM
bits:    31 30      23 22                     0

(فقط أن أشير إلى علامة بت الأخير وليس الأول.)

A مزدوج الدقة النقطة العائمة التمثيل يستخدم كلمة 64 بت.

  • 1 بت التوقيع, S
  • 11 البتات الأس, 'E'
  • 53 البتات جزء / العشري / معامل (على الرغم من 52 ممثلة), 'M'

التمثيل:

           S  EEEEEEEEEEE   MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
bits:     63 62         52 51                                                  0

كما كنت قد لاحظت, كتبت أن العشري في كلا النوعين ، بت واحد من المعلومات مقارنة مع التمثيل.في الواقع ، فإن العشري هو عدد يمثل من دون كل غير ما الخط الثالث فهو استخدام 0.على سبيل المثال ،

  • 0.000124 يصبح 0.124 × 10−3
  • 237.141 يصبح 0.237141 × 103

وهذا يعني أن العشري سوف يكون دائما في شكل

0.α1α2...αt × βp

حيث β هو قاعدة التمثيل.ولكن لأن الكسر هو عدد ثنائي ، α1 سوف تكون دائما تساوي 1 ، وبالتالي الكسر يمكن إعادة كتابة 1.α2α3...αt+1 × 2p الأولية 1 أن تكون يفترض ضمنا ، مما يجعل غرفة إضافية بت (αt+1).

الآن, من الواضح انه صحيح أن ضعف 32 64 ، ولكن ليس فيها كلمة تأتي من.

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

وقال مع ذلك, فإنه من السهل أن تقدير عدد الأرقام العشرية التي يمكن استخدامها بأمان:

  • دقة واحدة:سجل10(224) الذي هو حوالي 7~8 أرقام عشرية
  • الدقة المزدوجة:سجل10(253) ، وهي عبارة عن 15~16 الأرقام العشرية

حسنا، والفرق الأساسي في الجهاز هو أن مزدوجة الدقة يستخدم ضعف عدد البتات كما واحدة. في تنفيذ المعتاد، وهذا هو 32 بت لواحدة و 64 بت لمضاعفة.

ولكن ماذا أن <م> يعني ؟ لو افترضنا معيار IEEE، ثم عدد الدقة واحد لديها نحو 23 بت من العشري، والأس الحد الأقصى من حوالي 38؛ الدقة المزدوجة على 52 بت لالعشري، والأس الحد الأقصى من حوالي 308.

والتفاصيل هي على ويكيبيديا ، كالعادة.

إضافة إلى جميع أجوبة رائعة هنا

أولا وقبل كل شيء تطفو و مزدوج تستخدم لتمثيل الأرقام كسور الأرقام.إذن الفرق بين ينبع من حقيقة مع مدى الدقة يمكن تخزين أرقام.

على سبيل المثال: يجب أن متجر 123.456789 واحدة قد تكون قادرة على تخزين فقط 123.4567 في حين أن الأخرى قد تكون قادرة على تخزين الدقيق 123.456789.

لذا أساسا نريد أن نعرف كم يمكن أن بدقة عدد تخزين و هو ما نسميه الدقة.

نقلا عن @اليساندرو هنا

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

تطفو يمكن بدقة تخزين حوالي 7-8 الأرقام في الجزء الكسري في حين مزدوجة بدقة تخزين حوالي 15-16 الأرقام في الجزء الكسري

لذا تطفو يمكن تخزين ضعف المبلغ من جزء كسري. هذا هو السبب في ضعف يسمى ضعف تطفو

كما أن السؤال "هل ps3 و xbxo 360 سحب قبالة الدقة المزدوجة عمليات النقطة العائمة أو واحد فقط الدقة في generel استخدام مزدوج الدقة قدرات استخدام (إذا كانت موجودة؟)."

وأعتقد أن كل المنابر غير قادرين على مضاعفة النقطة العائمة.الخلايا الأصلية المعالج فقط 32 بت يطفو نفسه مع ATI الأجهزة التي XBox 360 على أساس (R600).الخلية حصلت على ضعف العائمة نقطة دعم في وقت لاحق, ولكن أنا متأكد من أن PS3 لا يستخدم هذا chippery.

دقة واحدة العائمة صفقات الحسابية نقطة مع أرقام النقطة العائمة 32 بت في حين <أ href ل = "http://en.wikipedia.org/wiki/Double_precision" يختلط = "نوفولو noreferrer"> مزدوجة الدقة يتعامل مع 64 بت.

وعدد البتات في الدقة المزدوجة يزيد الحد الأقصى للقيمة التي يمكن تخزينها وكذلك زيادة الدقة (أي عدد الأرقام المعنوية).

الدقة المزدوجة يعني الأرقام يأخذ مرتين الكلمة-طول المخزن.على معالج 32 بت, كلمات كلها 32 بت ، لذلك الزوجي هي 64 بت.ماذا يعني هذا من حيث الأداء هي تلك العمليات على ضعف دقة الأرقام يستغرق وقتا أطول قليلا إلى تنفيذ.لذلك يمكنك الحصول على أفضل مجموعة, ولكن هناك ضربة صغيرة على الأداء.هذا ضرب من التخفيف قليلا من قبل الأجهزة العائمة نقطة وحدة, ولكن لا يزال هناك.

N64 تستخدم MIPS R4300i على أساس NEC VR4300 وهو 64 بت المعالج ، ولكن المعالج يتصل مع بقية النظام أكثر من 32 بت واسعة الحافلة.لذلك ، فإن معظم مطوري تستخدم 32 بت الأرقام لأنها أسرع و معظم الألعاب في ذلك الوقت لم يكن في حاجة إضافية الدقة (لذلك استخدموا العربات لا الزوجي).

كل ثلاثة أنظمة يمكن هل مفردة ومزدوجة الدقة العائمة العمليات ، لكنها قد لا بسبب الأداء.(على الرغم من أن كل شيء تقريبا بعد n64 تستخدم 32 بت حافلة حتى...)

ووفقا لIEEE754 • القياسية لالعائمة تخزين نقطة • 32 و 64 معايير بت (الدقة واحد والدقة مزدوجة) • الأس 8 و 11 بت على التوالي • صيغ الموسعة (العشري على حد سواء والأس) عن نتائج المتوسطة

ووكلاهما يستخدم في المقام الأول تعويم ومضاعفة لتمثيل الأرقام أرقام كسور. لذا، فإن الفرق بينهما ينبع من حقيقة مع مدى الدقة التي يمكن تخزين الأرقام.

وعلى سبيل المثال: لدي لتخزين 123.456789 واحدة قد تكون قادرة على تخزين فقط 123.4567 في حين أن غيرها قد تكون قادرة على تخزين بالضبط 123.456789

.

وهكذا، في الأساس نريد أن نعرف كم بدقة ويمكن تخزين عدد وهو ما نسميه الدقة.

ونقلا عنAlessandro هنا

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

وتعويم يمكن تخزين بدقة حوالي 7-8 الأرقام في الجزء الكسري في حين يمكن للنقرا تخزين بدقة حول 15-16 الأرقام في الجزء الكسري

وهكذا، انقر نقرا يمكن تخزين ضعف كمية الجزء الكسري اعتبارا من تعويم. هذا هو السبب في ما يسمى مزدوجة تعويم

يستخدم

وعدد الدقة واحد 32 بت، مع MSB يجري بت تسجيل، في حين يستخدم مزدوج عدد الدقة 64bits، MSB كونه دليلا قليلا

والدقة واحدة

وSEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFF.(SIGN+EXPONENT+SIGNIFICAND)

والدقة مزدوجة:

وSEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.(SIGN+EXPONENT+SIGNIFICAND)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top