سؤال

صديق & كانوا يناقشون كيف Inf و نان يتم تخزينها أثناء الغداء اليوم.

تأخذ Fortran 90 على سبيل المثال.4-بايت ريال يمكن الحصول على قيمة Inf أو نان.كيف هو هذا المخزنة داخليا ؟ ويفترض 4 بايت الحقيقي هو عدد يمثل داخليا قبل 32 أرقام عدد ثنائي.هي Inf و نان تخزين 33 بت ثنائي الأرقام ؟

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

المحلول

على وجه التحديد من هو البيستو الرابط:

IEEE دقة واحدة النقطة العائمة معيار التمثيل يتطلب 32 بت الكلمة ، التي قد تكون ممثلة على النحو مرقمة من 0 إلى 31 ، من اليسار إلى اليمين.الشيء الأول هو علامة قليلا ، S, التالي ثمانية بت الأس بت،'E'النهائية 23 بت جزء 'F':

S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF  
0 1      8 9                    31  

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

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

نصائح أخرى

وتستند تمثيل النقطة الأكثر العائمة على مستوى IEEE، الذي لديه <لأ href = "http://web.archive.org/web/20120124062928/http://www.psc.edu/general/software/packages /ieee/ieee.php "يختلط =" نوفولو noreferrer "> أنماط مجموعة والمعرفة من أجل المشاة ونان.

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