سؤال
صديق & كانوا يناقشون كيف 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 "> أنماط مجموعة والمعرفة من أجل المشاة ونان.